IT |
気になる、記になる… |
エム・エス・シー、MagSafe対応ハンドグリップ「clckr Compact MagSafe Stand&Grip」とカードホルダー「clckr MagSafe Wallet」を発売 |
https://taisy0.com/2023/08/31/176106.html
|
actmagsafestandampgrip |
2023-08-31 13:48:33 |
IT |
InfoQ |
Presentation: Rethinking Reliability: What You Can (and Can't) Learn From Incidents |
https://www.infoq.com/presentations/incidents-void/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global
|
Presentation Rethinking Reliability What You Can and Can x t Learn From IncidentsCourtney Nash discusses research collected from the VOID challenging standard industry practices for incident response and analysis like tracking MMTR and using RCA methodology By Courtney Nash |
2023-08-31 13:22:00 |
TECH |
Techable(テッカブル) |
土地検索アプリ「ランディ」、建築・不動産領域の複雑な質問に回答できるAIチャットボット搭載へ |
https://techable.jp/archives/218508
|
chatgpt |
2023-08-31 13:00:44 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
HTMLとJSだけで簡単な星評価フォームを作る(CSSなし) |
https://qiita.com/pam5596/items/12aa0b90ca3963921cf2
|
評価 |
2023-08-31 22:39:43 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
【AWS CF】「The target group does not have an associated load balancer」エラーの原因と解決方法 |
https://qiita.com/Ryo-0131/items/5cf8e34e6c52840e4345
|
andlerreturnedmessageinva |
2023-08-31 22:35:23 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
コンテナセキュリティ本の要約 |
https://qiita.com/empelt/items/05c4abb69dfc5522a9da
|
docker |
2023-08-31 22:38:59 |
技術ブログ |
Developers.IO |
[レポート] ゲームならではの音楽演出! インタラクティブミュージック制作の裏側をブループロトコル等の事例を元に解説 #CEDEC2023 #classmethod_game |
https://dev.classmethod.jp/articles/cedec2023-interactive-music/
|
cedec |
2023-08-31 13:35:36 |
海外TECH |
MakeUseOf |
Why Traditional Firewalls Are Not Adequate for Your Network Security |
https://www.makeuseof.com/why-traditional-firewalls-not-adequate-for-network-security/
|
network |
2023-08-31 13:01:25 |
海外TECH |
MakeUseOf |
iCloud Not Syncing? How to Solve iCloud Sync Issues |
https://www.makeuseof.com/tag/icloud-sync-problems-x-fixes-common-cloud-storage-issues/
|
despair |
2023-08-31 13:01:25 |
海外TECH |
DEV Community |
Ubuntu Sistemlerde Disk boyutunu artırma - lvextend ve resize2fs kullanımı |
https://dev.to/aciklab/ubuntu-sistemlerde-disk-boyutunu-artirma-lvextend-ve-resize2fs-kullanimi-kik
|
Ubuntu Sistemlerde Disk boyutunu artırma lvextend ve resizefs kullanımıSanallaştırma ortamınızdan diskinizin boyutunu genişlettikten sonra aşağıdaki komutlarıkullanarak diskinizin lvm alanının tamamınıkullanmasınısağlayabilirsiniz İlk önce aşağıdaki komutu kullanarak alanlarınızıgörelimdf hbenim makinamda sonuçaşağıdaki gibidirroot limanmys home test df hFilesystem Size Used Avail Use Mounted ontmpfs M M M run dev mapper ubuntu vg ubuntu lv G G G tmpfs G M G dev shmtmpfs M M run lock dev sda G M G boottmpfs M K M run user tmpfs M K M run user lvextend l FREE dev mapper ubuntu vg ubuntu lvSonrasında aşağıdaki komutu çalıştırarak disk alanımızıkullanabilirizresizefs f dev mapper ubuntu vg ubuntu lv işlem sonucunda disk alanımız güncellenmişolmalıdır root limanmys home test df hFilesystem Size Used Avail Use Mounted ontmpfs M M M run dev mapper ubuntu vg ubuntu lv G G G tmpfs G M G dev shmtmpfs M M run lock dev sda G M G boottmpfs M K M run user tmpfs M K M run user |
2023-08-31 13:40:43 |
海外TECH |
DEV Community |
How to model a following system similar to Twitter and Instagram with Python and Django |
https://dev.to/uhttred/how-to-model-a-following-system-similar-to-twitter-and-instagram-with-python-and-django-3d9h
|
How to model a following system similar to Twitter and Instagram with Python and DjangoHi I published a nice article on my website about how to model a follower system similar to Twitter or Instagram Access the article here |
2023-08-31 13:29:13 |
海外TECH |
DEV Community |
Form Handling | React | Part 3 | Components |
https://dev.to/shubhamtiwari909/form-handling-react-part-3-components-5a9m
|
Form Handling React Part ComponentsHello everyone before moving on to the blog i want to clarify that i will be wrapping up this series and this one is the final part i won t go in deep for formik as it is basically depreciated pretty much and not maintained now even the last release was year ago Instead i would start a new series on React hooks form which is a lightweight form handling library and also the latest one and similar to formik Let s get started So in this part of the series we are going to reduce boilerplate and use formik components to achieve the same goal which we did in our last blog in the series import React from react import Formik Form Field ErrorMessage from formik import as Yup from yup import TextError from TextError const initialValues name Shubham email company const onSubmit values gt console log Form data values const validationSchema Yup object name Yup string required Name is required email Yup string email Email format invalid required Email is required company Yup string required Company is required function DemoForm return lt div className grid container gt lt Formik initialValues initialValues onSubmit onSubmit validationSchema validationSchema validateOnMount gt lt Form className form container gt lt div className form control gt lt label htmlFor name gt Name lt label gt lt div className relative gt lt Field type text id name name name className form input gt lt ErrorMessage name name component TextError gt lt div gt lt div gt lt div className form control gt lt label htmlFor email gt E mail lt label gt lt div className relative gt lt Field type email id email name email className form input gt lt ErrorMessage name email component TextError gt lt div gt lt div gt lt div className form control gt lt label htmlFor company gt Company lt label gt lt div className relative gt lt Field type text id company name company className form input gt lt ErrorMessage name company component TextError gt lt div gt lt div gt lt button type submit className form submit gt Submit lt button gt lt Form gt lt Formik gt lt div gt export default DemoFormSo we have imported component Formik is the container component we can remove the useFormik hook and use Formik component to achieve the same result We need to pass initial values onSubmit handler and validationSchema as propsForm component to handle the form entirely we can remove onSubmit handler Form component will handle things behind the scenes Field component is used instead of input fields We can remove the values onChange and onBlur attributes as the component will handle those behind the scenes using the name attribute we pass ErrorMessage component is used instead of creating the logic for errors using touched and error and then displaying it this component needs name attribute to track the errors and component attribute to pass in the custom UI we created to show the error Rest of the things are same After this one i will start the react hooks form series in sometime THANK YOU FOR CHECKING THIS POSTYou can contact me on Instagram LinkedIn Email shubhmtiwri gmail com You can help me with some donation at the link below Thank you gt lt Also check these posts as well |
2023-08-31 13:23:54 |
海外TECH |
DEV Community |
How to Deal with Tech Debt in a Fast-Growing Engineering Organization? |
https://dev.to/hatica/how-to-deal-with-tech-debt-in-a-fast-growing-engineering-organization-344o
|
How to Deal with Tech Debt in a Fast Growing Engineering Organization “If it works don t touch it is the unwritten mantra in the dev world If only one could understand its long term implications At large enterprises of engineers spend a significant amount of their time dealing with technical debt aka code debt or tech debt Yet most of the engineering projects are infected with it and none can truly claim to have zero technical debt Though there could be huge cost implications of technical debt not all engineering teams proactively address it It s because the damage it incurs is not always tangible or quantifiable But the consequences can be very severe For instance in a survey of engineers said they considered changing jobs because of technical debt So many engineering teams and inexperienced managers commit the grave mistake of letting the tech debt pile up over the course of software development lifecycle stages In our insight on the cost implications of tech debt we have briefly explained why fast growing engineering companies must prioritize reducing their tech debt Read this insight to find out how to effectively deal with accruing tech debt Don The Evangelist Hat amp Spread The Word We follow best engineering practices and our tech debt is trivial in nature So we can focus on more important things than wasting our engineering resources on something with no business significance That s a very irresponsible and dumbfounded mindset to be in Tech debt is inevitable you may even call it integral to software projects Like a stealthy termite it slowly gnaws away at the foundation of your engineering company quietly wreaking havoc on your potential growth and organizational stability Just as a termite infestation remains unnoticed until the damage becomes apparent the insidious nature of technical debt creeps into your codebase eroding its quality and impeding progressFor example voted technical debt as the biggest factor hampering developer productivity So first amp foremost you along with all the stakeholders need to recognize and acknowledge the existence of tech debt Understand its impact on organizational growth in the long run Ensure that the developers the project manager the tech lead the engineering managers and the CXOs are all on the same page This helps in cultivating a culture that prioritizes continuous maintenance and reduces technical debt Define Tech DebtTech debt can sprout and spread like wild bushes entangling your code base and obscuring developer productivity and innovation It can be incredibly frustrating and demoralizing to deal with Amateur developers tend to take shortcuts that can have long term consequences The quick fixes patches and band aid code solutions can introduce complexities in the code that take a lifetime to decipher and work around It not just stifles creativity amp innovation but is a massive roadblock to productivity Developer habits and coding practices aren t the only sources of technical debt It could also be evolving nature of the business where requirements change Developers cannot always anticipate the future state of a function and they tend to implement solutions as per the present understanding of the business problem For instance consider a hypothetical eCommerce platform The platform is growing well and decides to expand its business to a neighboring country Now developers need to accommodate this business decision and do so swiftly Based on their understanding of the problem they chose to introduce an extra function with hard coded tax calculations and extend support for accepting the currency of the new market This function gets invoked in the main cart payments function to calculate the total invoice value Later when the country plans to extend to other countries The development team will be left with no option but to rework amp modularize the tax calculation functionality and introduce an abstraction layer for teams in the new market to independently manage the taxes and other relevant compliances without the need for any intervention from the core development team For brevity we are not getting into the details of how these business decisions would introduce complexities in the Shipment Catalog Product Pricing and other eCommerce software modules But you would agree that the development decisions that were made with the short time view of the business understanding would require a lot of rework and extra effort in the long run There are multiple other types of technical debt But the point we are trying to make here is that you must define amp understand the nature of the technical debt accruing in your organization So that you can go back to the root cause and fix it rather than wasting your engineering capabilities on firefighting and playing the catch up game In general the source of tech debt could be emanating from Poor quality code with high duplication and violation of coding conventions that leaves loopholes in the code Inadequate non scalable non modular architecture attracts a lot of shortcuts to meet the market demand and as a result bugs are introduced in the software Inefficient or insufficient testing and code coverage which results in undetected bugs being pushed to delivery deployment Improper incomplete or outdated documentation can hinder the effective maintenance of a code repository In fact it can frustrate and lower the morale of developersSoftware dependencies i e poorly maintained or installed software hardware components that can introduce security risks and limit application scalability Ill processes like frequent delivery at the cost of defects In a nutshell proactively deal with tech debt by anticipating the nature of tech debt you could be introducing in your digital infrastructure Continuously filter out bad processes amp practices improve components with low quality code and upgrade infrastructure for modularity amp abstraction without trading off performance Quantify Tech DebtIf you do not want to discourage your developers from even looking at code use code metrics like Cyclomatic complexity code coverage SQUALE rating static code analysis violations code size code smells bugs count etcetera to assess the severity of tech debt and actively work to reduce it Studies have shown that functions with high Cyclomatic complexity and code duplication also tend to have more defects which ultimately introduces unwanted tech debt If your tests are flakey and the code coverage is below par high chances are that areas of the code that are not adequately tested may have undetected bugs that put your system at risk exposes it vulnerable and contributes to technical debt SQALE rating Software Quality Assessment based on Lifecycle Expectations is a metric to evaluate the quality of your source code It helps you evaluate the accruing tech debt by assigning a numerical score based on factors like maintainability testability reliability security portability reliability reusability and efficiency Tools like SonarCube successfully implemented the SQALE methodology to help you evaluate your tech debt Code Smells are the indicators of poor design implementations which are prevalent in the form of long methods amp classes duplicated code poor naming conventions inefficient use of control structures and excessive coupling These are not bugs but because of the complexity it introduces the blocks of software that exhibit code smell characteristics are painfully hard to maintain modify or upgrade And thus contributes to the technical debt Engineering managers must monitor engineering KPIs like Release frequency MTTR Cycle Time etcetera to anticipate if technical debt is at play and hampering your SDLC process Infrequent or irregular release velocity high MTTR and high Cycle time could be the signals of technical debt hindering you from shipping new features to the market Looking holistically at engineering KPIs and code quality metrics gives you a deeper insight into the actual impact of tech debt Measure The Cost of Ignoring Technical DebtWith accruing debt the risk of system failures crashes and security vulnerabilities increases It not just breaks the UX but harms your brand as well Besides developers do not want to spend time on re writing or fixing the mistakes of someone else They find it highly demotivating to be wasting time playing code police The frustration is not just for developers but also for engineering managers and other stakeholders Because the more the system grows without addressing the tech debt the tougher it becomes for a new developer to jump in and start contributing Managers have a tough time onboarding amp retaining developers for working on a highly convoluted code base So assess what you re losing in terms of the wasted developer engineering manager s time the cost you pay for operational maintenance of legacy systems or obsolete hardware devices the opportunity costs etcetera Metaphorically speaking calculate the interest and any direct or indirect liabilities in terms of lost opportunities developer productivity loss owing to debt frustration amp demotivation loss of brand value and customer churn Read our insight on the cost implications of tech debt to dive deeper into how tech debt impacts every facet of your business Strategize amp PrioritizeTech debt is the lingering pain or call it a strain that drains your teams of enthusiasm productivity and performance It needs to be actively dealt with Once you have identified the source or cause of tech debt assessed the possible fixes and estimated the investment needed communicate the same to the entire team and explain the type severity cause and associated cost implications of the code debt Win the buy in from the stakeholders to actively dedicate time and resources to reduce technical debt Put efforts toward maintenance refactoring bug fixes and code quality improvement in all your sprints Continuously Reduce Your Tech DebtHow you deal with tech debt will be highly driven by the nature of the debt its severity and the resources you have among multiple other factors But on a high level continuously improving the engineering processes and practices in your organization and building a security first culture with high ownership could be beneficial in dealing with the tech debt Agile amp DevOps TonicAdopt agile methodologies test driven development approaches and DevOps practices to better respond to changing market conditions Focus on writing extensive test cases for maximum code coverage Continuous testing led CI CD pipelines are effective at yielding high quality software Remember testing is not a silver bullet that you use once and you re done It is not done and forgotten but rather a continuous improvement process So you would need to keep improving your test cases iteratively for the best outcomes Refactoring is your X factorRefactor your legacy code to modernize it and structure your messy spaghetti code to make it more readable and maintainable Refactoring in line comments and structuring code blocks are quite effective at reducing tech debt Use the aforementioned metrics to quantify amp prioritize your tech debt Using engineering analytics and code quality assessment tools you can analyze your git repositories for metrics like code ownership code cohesion code coupling and code churn to pin point files that are the major contributors to tech debt For example as Microsoft reported a higher level of code ownership for a software component or components with fewer contributors will have fewer failures compared to a lower level of code ownership or more contributors to a repository file Similarly as found in research files with high code churn i e active files in your git repository which are actively being modified daily or a couple of times every week for a few months are reported to introduce the majority of bugs in your code Your engineering analytics tool can help you identify high churn files and you can consciously work on them to refactor the code for modularisation and extensively document the dependencies or functionality for future modifications for preventing technical debt Excellence is the way forwardAs a rule of thumb upskill your developers and solutions architects to write high quality software while adhering to best programming practices and conventions Inculcate a culture of regular and thorough code reviews extensive documentation and continuous debt mitigation to patch the loopholes and build for resilience The better the quality of your code the lower the tech debt Say Goodbye to Tech Debt with HaticaAs an engineering VP manager or lead you must shoulder the responsibility to keep your organization debt free metaphorically free from technical debt And ensure the well being of your developers After all no one gives their best when they are frustrated and demoralized So strive to gain visibility into your engineering practices processes and operations Track the metrics amp generate reports that reflect your engineering health the tech debt you might be accruing and how it hits the bottom line Make effective use of these metrics look at them holistically to connect the dots and identify the specific files software components or teams who might be unintentionally contributing to the tech debt and deterring everyone from unleashing their best potential Tools like Hatica give you clear visibility into your engineering health and help you resolve tech debt problems Hatica integrates directly with your engineering stack to pull data around engineering metrics to enable you to assess your engineering health and tackle the tech debt issues Here s a quick sneak into different platforms from where Hatica dynamically pulls data and helps you visualize them via interactive dashboards Git platforms GitHub GitLab etc CI CD pipeline tools CircleCI Jenkins etc Incident management tools PagerDuty OpsGenie Project management tools Jira Asana etc And other apps that your engineering team usesExplore Hatica to evaluate how it can help you tackle technical debt improve your engineering health and enhance your developer experience amp productivity To conclude the vicious impact of technical debt can spread beyond your core engineering department and may badly impact your regular business operations It can even hit your supply chain hard Today IT is the enabler and differentiator It can help you beat the competition and win customers through innovation and awfully good customer experiences But if you let something as cancerous as technical debt hold its foot it becomes unmanageable And ultimately detrimental to your organizational growth Don t let your debt pile up else you may go bankrupt paying it back Go debt free with Hatica |
2023-08-31 13:21:33 |
海外TECH |
DEV Community |
Angular Reactive Forms: Mastering Dynamic Form Validation and User Interaction |
https://dev.to/chintanonweb/angular-reactive-forms-mastering-dynamic-form-validation-and-user-interaction-32pe
|
Angular Reactive Forms Mastering Dynamic Form Validation and User Interaction IntroductionIn the world of web development creating interactive and user friendly forms is a critical aspect of building engaging user interfaces Angular a popular JavaScript framework offers a powerful feature called Reactive Forms that allows developers to create dynamic and robust forms with advanced validation and user interaction capabilities In this article we will delve deep into Angular Reactive Forms exploring their features benefits implementation and best practices Table of ContentsUnderstanding Reactive FormsWhat are Reactive Forms Key Advantages of Reactive FormsGetting Started with Reactive FormsSetting Up an Angular ProjectImporting ReactiveFormsModuleCreating a Basic FormForm Controls and ValidationWorking with Form ControlsApplying ValidatorsDisplaying Validation MessagesDynamic Form FieldsGenerating Form Fields DynamicallyFormArray Managing Arrays of Form ControlsAdding and Removing Form FieldsForm Submission and Data HandlingHandling Form SubmissionAccessing Form ValuesResetting and Updating Form DataAdvanced TechniquesCross Field ValidationCustom ValidatorsAsynchronous ValidationUser Interaction and Real time FeedbackConditional ValidationUpdating UI based on Form InputProviding Instant FeedbackBest Practices for Effective UsageSeparation of ConcernsMECE Principle in Form DesignAccessibility ConsiderationsFAQ SectionCommon Questions About Reactive Forms Understanding Reactive Forms What are Reactive Forms Reactive Forms in Angular provide a declarative approach to creating and managing forms within your application Unlike Template Driven Forms Reactive Forms are built programmatically using TypeScript classes This approach offers greater control and flexibility over form validation and user interaction Key Advantages of Reactive FormsReactive Forms offer several advantages over other form handling methods Explicit Control With Reactive Forms you have complete control over form controls validation and submission This makes it easier to implement complex validation scenarios and custom behaviors Dynamic Form Structure Reactive Forms excel in scenarios where form fields need to be generated dynamically such as when dealing with dynamic questionnaires or surveys Testability The separation of the form logic from the template makes unit testing much more straightforward allowing you to write test cases for your form related code Reactivity Reactive Forms live up to their name by reacting to changes in form values and control states This enables real time updates and dynamic UI changes based on user input Getting Started with Reactive Forms Setting Up an Angular ProjectBefore we dive into Reactive Forms let s set up an Angular project If you haven t already installed the Angular CLI you can do so using the following command npm install g angular cliCreate a new Angular project ng new ReactiveFormsDemoNavigate to the project directory cd ReactiveFormsDemo Importing ReactiveFormsModuleReactive Forms are part of the angular forms package To use them you need to import the ReactiveFormsModule in your application module Open the app module ts file and add the following import import ReactiveFormsModule from angular forms NgModule declarations imports Other imports ReactiveFormsModule export class AppModule Creating a Basic FormLet s start by creating a simple reactive form with a few basic form controls In your component file e g app component ts import the necessary classes import Component from angular core import FormBuilder FormGroup from angular forms Component selector app root template lt form formGroup myForm ngSubmit onSubmit gt lt label for name gt Name lt label gt lt input type text id name formControlName name gt lt label for email gt Email lt label gt lt input type email id email formControlName email gt lt button type submit gt Submit lt button gt lt form gt export class AppComponent myForm FormGroup constructor private fb FormBuilder this myForm this fb group name email onSubmit console log this myForm value In this example we re creating a form with two form controls name and email The formControlName attribute in the HTML connects these form controls to the myForm FormGroup instance Form Controls and Validation Working with Form ControlsForm controls are the building blocks of reactive forms Each input field corresponds to a form control To access and work with these controls we use the FormGroup and FormControl classes provided by Angular s ReactiveFormsModule Applying ValidatorsValidation is a crucial aspect of any form Reactive Forms offer a range of built in validators that you can apply to form controls Validators help ensure that the data entered by users meets specific criteria For example to make the name field required you can apply the Validators required validator import Validators from angular forms this myForm this fb group name Validators required email Displaying Validation MessagesWhen a user interacts with a form validation messages should provide feedback about input errors Angular s reactive forms allow you to easily display validation messages based on control state Update your template to include validation messages lt form formGroup myForm ngSubmit onSubmit gt lt label for name gt Name lt label gt lt input type text id name formControlName name gt lt div ngIf myForm get name hasError required amp amp myForm get name touched gt Name is required lt div gt lt label for email gt Email lt label gt lt input type email id email formControlName email gt lt form gt In this example the ngIf directive checks if the name control has the required error and has been touched by the user If both conditions are met the validation message is displayed Dynamic Form Fields Generating Form Fields DynamicallyOne of the powerful features of Reactive Forms is the ability to generate form fields dynamically This is particularly useful when dealing with forms that have varying structures based on user choices or dynamic data To illustrate dynamic forms let s consider a scenario where users can add multiple addresses to a form Instead of hardcoding each address field we can create a template driven structure that generates form controls as needed lt form formGroup addressForm gt lt div formArrayName addresses gt lt div ngFor let addressGroup of addressGroups controls let i index formGroupName i gt lt label gt Street lt label gt lt input formControlName street gt lt label gt City lt label gt lt input formControlName city gt lt button click removeAddress i gt Remove lt button gt lt div gt lt div gt lt button click addAddress gt Add Address lt button gt lt form gt Here the addressGroups FormArray holds individual FormGroup instances for each address The ngFor loop dynamically generates form controls for each address FormArray Managing Arrays of Form ControlsThe FormArray class is a specialized type of FormGroup that manages an array of FormControl FormGroup or other FormArray instances In the example above the addresses FormArray holds multiple FormGroup instances each representing an address To create a FormArray you can use the FormBuilder this addressForm this fb group addresses this fb array Adding and Removing Form FieldsAdding and removing dynamic form fields involves manipulating the FormArray To add a new address you can use the push method addAddress const addressGroup this fb group street city this addresses push addressGroup Removing an address requires using the removeAt method removeAddress index number this addresses removeAt index Form Submission and Data Handling Handling Form SubmissionReactive Forms provide a straightforward way to handle form submissions using the ngSubmit event binding When the form is submitted the associated function is called allowing you to process the form data lt form formGroup myForm ngSubmit onSubmit gt lt Form fields gt lt button type submit gt Submit lt button gt lt form gt In your component define the onSubmit function onSubmit if this myForm valid Process form data Accessing Form ValuesTo access the values entered in the form controls you can simply use the value property of the FormGroup or FormControl However it s important to note that this property returns an object with keys corresponding to control names and values representing user input onSubmit if this myForm valid const formData this myForm value Process formData Resetting and Updating Form DataResetting a form to its initial state is useful after successful submission or when the user cancels the operation To reset a form use the reset method resetForm this myForm reset If you want to reset the form to a specific set of values you can pass an object to the reset method resetFormToDefault this myForm reset name email To update form values programmatically use the patchValue or setValue methods updateFormValues this myForm patchValue name John Advanced Techniques Cross Field ValidationCross field validation involves validating multiple fields together often with complex relationships Reactive Forms support this type of validation by providing a way to implement custom validators that consider multiple fields const passwordValidator ValidatorFn control AbstractControl ValidationErrors null gt const password control get password const confirmPassword control get confirmPassword if password confirmPassword return null return password value confirmPassword value null passwordsNotMatch true this myForm this fb group password confirmPassword validator passwordValidator In this example the passwordValidator checks if the password and confirm password fields match Custom ValidatorsApart from the built in validators you can create custom validators to suit your specific validation requirements A custom validator is a simple function that accepts a FormControl as its argument and returns a validation error object if the validation fails const customValidator ValidatorFn control AbstractControl ValidationErrors null gt const value control value if value amp amp value includes example return containsExample true return null this myForm this fb group customField customValidator Asynchronous ValidationSometimes validation requires asynchronous operations such as checking if a username is available on a server Reactive Forms support asynchronous validation using the asyncValidator property when defining a form control const asyncValidator AsyncValidatorFn control AbstractControl Observable lt ValidationErrors null gt gt return someAsyncCheck control value pipe map result gt result null notAvailable true catchError gt null Handle errors gracefully this myForm this fb group username asyncValidator User Interaction and Real time Feedback Conditional ValidationReactive Forms allow you to conditionally apply validation rules based on user input This is particularly useful when you need to change validation requirements dynamically this myForm this fb group age Validators required hasLicense false Add or remove the required validator based on hasLicense valuethis myForm get hasLicense valueChanges subscribe hasLicense gt const ageControl this myForm get age if hasLicense ageControl setValidators Validators required Validators min else ageControl clearValidators ageControl updateValueAndValidity In this example the age field becomes required only if the user indicates that they have a license Updating UI based on Form InputReactive Forms allow you to react to form control changes and update the user interface accordingly You can use the valueChanges observable to listen for changes in form controls this myForm get email valueChanges subscribe newValue gt Update UI based on the new email value This technique is particularly useful for providing real time feedback to users as they interact with the form Providing Instant FeedbackReactive Forms enable you to provide instant feedback to users as they fill out a form For instance you can validate user input as they type and show validation messages immediately this myForm this fb group email Validators required Validators email Show hide validation message based on control validity and user interactionthis myForm get email valueChanges subscribe gt const emailControl this myForm get email if emailControl invalid amp amp emailControl touched this emailError Invalid email format else this emailError In this example the emailError variable holds the validation message which is updatedbased on the email control s validity and user interaction Best Practices for Effective Usage Separation of ConcernsWhen working with Reactive Forms it s essential to adhere to the principle of separation of concerns Keep your form logic separate from your component s business logic and view rendering This practice not only makes your codebase more maintainable but also improves testability MECE Principle in Form DesignMECE Mutually Exclusive Collectively Exhaustive is a principle often used in problem solving and project management Apply this principle to form design by ensuring that form controls cover all possible scenarios without overlapping or leaving gaps For instance if you re designing a user registration form make sure to include all necessary fields without redundancy Accessibility ConsiderationsWhile building forms pay special attention to accessibility Ensure that your forms are usable by people with disabilities by using proper HTML semantics labels and ARIA attributes Use high contrast and provide clear instructions to enhance the overall user experience FAQ Section Q Can I mix Reactive Forms and Template Driven Forms in the same application Yes you can use both Reactive Forms and Template Driven Forms within the same Angular application However it s a good practice to choose one approach and stick with it for consistency Q Are Reactive Forms suitable for small simple forms Reactive Forms can handle forms of any size and complexity While they may seem more elaborate for small forms they provide benefits such as better testability and real time feedback that can enhance the user experience even in simple scenarios Q How do I handle asynchronous operations in form submission For handling asynchronous operations during form submission you can use the switchMap operator from RxJS to chain your observable operations This allows you to make asynchronous calls and proceed with form submission only when the async operations are completed import switchMap from rxjs operators onSubmit if this myForm valid this someAsyncOperation pipe switchMap result gt this submitForm result subscribe gt Handle successful form submission ConclusionAngular Reactive Forms offer a powerful way to build dynamic interactive and well validated forms From simple user inputs to complex dynamic scenarios Reactive Forms empower developers to create intuitive and user friendly experiences By following best practices and understanding the nuances of form control management validation and user interaction you can take full advantage of this feature and create forms that seamlessly integrate with your Angular applications |
2023-08-31 13:14:50 |
Apple |
AppleInsider - Frontpage News |
Apple TV+ drops seven-day free trial in UK, South Africa |
https://appleinsider.com/articles/23/08/31/apple-tv-drops-seven-day-free-trial-in-uk-south-africa?utm_medium=rss
|
Apple TV drops seven day free trial in UK South AfricaNew Apple TV viewers in the UK and South Africa can no longer get a free week in which to decide whether to subscribe or at least without a workaround Apple regularly offers various free trials of its TV services such as a recent one tied to its MLS Season Pass But from the very start of Apple TV three years and almost ten months ago in November there has been a general free trial Users in the US and most countries still have the option to try out Apple TV for a week but that s no longer the case in the UK or South Africa In those territories as spotted by tomac the offer has been completely removed Read more |
2023-08-31 13:51:22 |
海外TECH |
Engadget |
Keyword search is finally coming to Threads |
https://www.engadget.com/keyword-search-is-finally-coming-to-threads-135516556.html?src=rss
|
Keyword search is finally coming to ThreadsA much demanded feature is finally coming to Threads very soon Meta CEO Mark Zuckerberg has confirmed A keyword search function is on the way Until now the search box has only been useful for looking up user accounts In fact the company is already testing the function in Australia and New Zealand It plans to roll out keyword search more broadly to English speaking territories in short order “We are actively listening to the community s feedback and working on more features to improve the search experience Meta told TechCrunch A full text search feature is seen as critical for Threads to challenge or perhaps even supplant X Twitter as the go to platform for public conversations particularly around events that are happening in real time Threads is missing some other functions that could help it get to that point such as a TweetDeck sorry XPro equivalent but being able to search for posts is vital It s a key feature that could help Threads bring back some of the users who have drifted away after an initial spike in popularity To its credit Meta has been quickly adding other important features to Threads over the last several weeks including a full web version and a chronological feed of posts So other functions that users have been asking for may not be far behind This article originally appeared on Engadget at |
2023-08-31 13:55:16 |
海外TECH |
Engadget |
Lower Decks taps into what Star Trek really is |
https://www.engadget.com/lower-decks-taps-into-what-star-trek-really-is-130059999.html?src=rss
|
Lower Decks taps into what Star Trek really isThe following article discusses the fourth season of Star Trek Lower Decks There s a risk using a word like “should that we re a short hop away from a tantrum to police the borders of What Proper Star Trek is But after watching most of Star Trek Lower Decks fourth season it does feel as if the show s outlook is the most Star Trek of the bunch Part of this is because the show is mature enough to laugh at itself and part of it is because it s now letting its characters grow This is a sitcom so its first duty is to be funny rather than weighty but it s a welcome sight to see the quartet escape the bottom rung I don t think that s much of a spoiler because it s in the trailer the press material and the cast s promotional interviews with TrekMovie At the start of season four some of the quartet get their promotions to Lieutenant Junior Grade and out of their shared bunk Now they re expected to lead away missions take on real real responsibilities and actually lead other people It affects them all differently with Boimler struggling to grow into his role and Mariner fighting every urge in her body not to self sabotage with varying degrees of success And it s here I think that we see the side of Star Trek that so often gets overlooked in its other properties After all Starfleet is an organization of people coming together to do better for other people but also to improve themselves For every daring scientific experiment and skin of the teeth rescue we see more of the senior officers desire to actually nurture their charges This too helps to broaden the series focus to include T Lyn the fan favorite who joined the Cerritos at the end of last season The broader view also gives Captain Freeman more of a central role in several episodes especially highlighting the times when her knowledge is ignored by her superiors For all we ve seen of the dung rolling downhill and landing in Beta Shift s trench it s not as if those higher up the chain don t get their fair share of excrement too I wonder if its status as Star Trek s officially sanctioned Class Clown gives it room to be more subversive than anyone gives it credit for Time and again both in this series and before we see totems of Star Trek s past commoditized and packaged for sale It s an easy way to milk fans nostalgia glands but it s also potentially a subtle critique about the nature of nostalgia As much as Lower Decks was created by a Next Generation fan who wants to recapture some of that magic it s also a commentary on that very same desire And the show s creative team is clear eyed enough to notice that series blind spots and mine them for comedy But for all of this high falutin talk this remains Lower Decks a series that can have you in tears at the sight of a pair of dueling SPOILERS trying to out compliment each other And if nothing else it s a pleasure to spend more time with Starfleet s horniest and weirdest crew The first two episodes of Star Trek Lower Decks will be available to watch on Paramount on Thursday September A new episode will arrive on subsequent Thursdays This article originally appeared on Engadget at |
2023-08-31 13:00:59 |
海外科学 |
BBC News - Science & Environment |
Idalia: Florida assesses storm damage amid sense of relief |
https://www.bbc.co.uk/news/world-us-canada-66654107?at_medium=RSS&at_campaign=KARANGA
|
carolina |
2023-08-31 13:07:38 |
金融 |
金融庁ホームページ |
国際サステナビリティ基準審議会(ISSB)による「アジェンダの優先度に関する協議」へのコメントレター発出について公表しました。 |
https://www.fsa.go.jp/inter/etc/20230831/20230831.html
|
発出 |
2023-08-31 15:00:00 |
ニュース |
BBC News - Home |
School buildings in England to shut over concrete safety fears |
https://www.bbc.co.uk/news/education-66673971?at_medium=RSS&at_campaign=KARANGA
|
measures |
2023-08-31 13:51:03 |
ニュース |
BBC News - Home |
Cardiff: Police dangerous driving probe over Ely teen deaths |
https://www.bbc.co.uk/news/uk-wales-66671333?at_medium=RSS&at_campaign=KARANGA
|
evans |
2023-08-31 13:28:47 |
ニュース |
BBC News - Home |
Wilko: First job losses confirmed as deal to buy whole firm fails |
https://www.bbc.co.uk/news/business-66668569?at_medium=RSS&at_campaign=KARANGA
|
failsmore |
2023-08-31 13:38:54 |
ニュース |
BBC News - Home |
Police pull over car with huge bull in passenger seat. |
https://www.bbc.co.uk/news/world-us-canada-66668411?at_medium=RSS&at_campaign=KARANGA
|
passenger |
2023-08-31 13:11:17 |
ニュース |
BBC News - Home |
Idalia: Florida assesses storm damage amid sense of relief |
https://www.bbc.co.uk/news/world-us-canada-66654107?at_medium=RSS&at_campaign=KARANGA
|
carolina |
2023-08-31 13:07:38 |
ニュース |
BBC News - Home |
England squad to face Ukraine and Scotland includes Jordan Henderson and Harry Maguire |
https://www.bbc.co.uk/sport/football/66668089?at_medium=RSS&at_campaign=KARANGA
|
England squad to face Ukraine and Scotland includes Jordan Henderson and Harry MaguireEngland boss Gareth Southgate includes Jordan Henderson and Harry Maguire in his squad for away games against Ukraine and Scotland in September |
2023-08-31 13:07:17 |
ニュース |
BBC News - Home |
Football Focus: PFA awards behind the scenes with Erling Haaland, Bukayo Saka & Lauren James |
https://www.bbc.co.uk/sport/av/football/66673804?at_medium=RSS&at_campaign=KARANGA
|
Football Focus PFA awards behind the scenes with Erling Haaland Bukayo Saka amp Lauren JamesFootball Focus Liam McDevitt goes behind the scenes at the PFA awards getting up close with the players pundits and presenters |
2023-08-31 13:02:39 |
仮想通貨 |
BITPRESS(ビットプレス) |
ビットポイントジャパン、9/29まで「暗号資産デビュー応援!BTCプレゼント口座開設キャンペーン」実施 |
https://bitpress.jp/count2/3_14_13692
|
開設 |
2023-08-31 22:45:07 |
コメント
コメントを投稿