It is highly important to keep up to date with thought-provoking solutions, updates, and tricks to deliver high-quality products and services. The year 2019 is over, therefore we would like to present the top 10 articles that we found very interesting and helpful during our daily work.
The article covers the topic of an error message: "Expression has changed after it was checked", which occurs while building Angular application. To completely understand the error message and debugging techniques, the author explains why the error occurs in the first place and how to identify it in the Angular development mode.
Going through the article, it is noticeable that the described error enables us to recognize the mistakes in the early stage of the development process. Therefore, developers can avoid certain issues with unrelated components or using the previous version of the data, while building UIs.
See the source from the Angular University here.
The author of the article presents how bad API affects the programmers by manufacturing unnecessary work. In order to evaluate the issues which are created by bad APIs, the author chose the Event Tracing for Windows as an example of a heavyweight API. Not only does the article point out the mistakes made in the Microsoft API (which is overloaded, error-prone, and complicated), but it also presents the principles which should be followed while creating an API. The main rule is to write the usage code in the first step. Starting from this point, you can immediately see how the API will work if it has no constraints. Thanks to it, you can take a user-perspective to create a clear and functional API.
See the source from Casey Muratori here.
Well designed project architecture is the basis for creating flexible, understandable, and maintainable applications. The Bulletproof node.js project architecture article presents the correct organization of the node.js project structure. Following the given rules help programmers to avoid code duplication, improve stability, and scale their services. The author created 6 basic takeaways, which will help you correctly design the project structure.
See the source from Software on the Road here.
The Asynchronous IO is a programming model supported by Python, which enables writing concurrent code. The article goes through the topics of async IO and its implementations, new Python keywords - async/await, and the Python package that provides the API to run and manage coroutines. In the beginning, the author compares the concurrent programming models. Furthermore, the main focus is put on the usability of async IO and the APIs that have emerged around it. Thanks to detailed explanations and several examples, the reader can understand the idea and functionality of Asynchronous IO as well as its implementation in Python.
See the source from Real Python here.
JSON Web Token (JWT) is an open standard that determines a compact, self-contained, and secure transformation of information between parties as a JSON object. This information is digitally signed, therefore, has become a popular way of handling auth. The article explains a JWT structure, shows the best way of implementation as well as discusses the advantages and disadvantages of using JWT. The post focuses on GraphQL client, but it could be applied to any frontend client. Going through all the steps, you can implement the solutions to your projects to have all the capabilities of a modern application.
See the source from Hasura Blog here.
The post shows the solution for the problem with which might face the Angular developers while changing the data in the collection without keeping the same reference. The problem arises because Angular does not keep track of items and does not know which objects have been changed. In order to follow which items were added or removed the author suggest to use the trackBy function which resolves this obstacle.
See the source from Netanel Basal here.
The article describes the implementation and functionality of the Celery Beat. It is a tool that helps software engineers to schedule their daily tasks, such as generating periodic reports, handling vasty imports or exports, backups, frequent API requests. Moreover, the application enables you to manage your tasks in the Django admin panel without interfering with a code.
See the source from Merixstudio here.
See the source from Bulldogjob here.
In Schulz’s article, the new TypeScript feature was described. To understand the motivation of creating const assertions, the author explained the functionality of the string literal types and performing literal type widening in TypeScript. The article presents how the const assertion works, its usability, as well as where and when it could be applied.
See the source from Marius Schulz here.
Conducting an Arduino project might be challenging, owing to the fact that it has no debugging system. Therefore, it is essential to learn how to conduct the debugging process in Arduino. Before coming to the main topic of the article, the author shows how to correctly plan the Arduino project. The last phase is debugging which contains of the four steps. Taking those recommendations into account helps Arduino developers to overcome the problems, eliminate errors, and deliver high-quality code.
See the source from Circuito here.
During this year, we learned a lot as well as developed our skills. The gathered articles are an example that we never stop looking for new solutions, which deepen our knowledge of software development every day. In the following year, we will systematically expand the database of our articles to share with you our knowledge and interesting insights from the IT world, stay tuned!
At Brave we specialise in IT Staff Augmentation, and Software Development Consulting. We help you to get your project done.
Domain-Driven Design (DDD) is an approach to software development that focuses on modeling a business domain, or a specific area of a business, in order to create a more effective and maintainable software system. It emphasizes the use of domain experts, such as business analysts and domain experts, in the software development process to ensure that the system accurately reflects the needs of the business.