You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let's learn about Software Design via these 111 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the /Learn or LearnRepo.com to find the most read blog posts about any technology.
Software design is the process of defining the architecture, components, interfaces, and other characteristics of a system or component. It matters for creating robust, scalable, and maintainable software by addressing requirements and constraints early in the development cycle, ensuring long-term success.
Sometimes a short thought can bring amazing ideas. There are some great quotes I’ve been collecting. I use them as inspiration or motto for some articles.
GUI design has become the best choice of user interface design. Nevertheless, in spite of the unpredictable popularity of GUI, few application programs have good interface design and live up to graphic user interface design principles. Additionally, it’s extremely difficult to use the expertise and existing documents to explain what an excellent and direct-viewing operation interface is.
If you ask any software developer, there’s a decent chance that they have tried their hand at game development. It seems like a natural fit since it uses many of the same skills. What’s more, programmers come into it with the knowledge that most aspiring game makers lack: how to write good code and create effective software.
Best Practice Using Timers in DotNet (.NET) CSharp (C#), Dependency Injection (DI), Inversion of Control (IoC), Test Driven Development (TDD), Unit Testing
Software design patterns have been used to package solutions to many common design conundrums. Each one has its own advantages and drawbacks to consider.
A root cause analysis of all failures of our software will find a single culprit with multiple costumes. The enemy is always there. Many times disguised as laziness, sometimes simplification, and very frequently with the optimization outfit.
Avoid software bottlenecks by understanding the 'God Object' anti-pattern in object-oriented programming. Learn its impacts, examples, and best practices.
Exception handling is common to most programming languages, and the mechanism and behaviors are similar in most languages: try\catch\finally. It is well documented. We are not going to discuss that.
Technical Debt is one thing, but when let to fester for too long, it can become Technical Fraud. A much more dangerous and much more insidious predator.
Software design is difficult. One has to design features to fit past and future code. C++ Temporary lifetime extension can teach us a lesson about such design.
Designing software systems is about tradeoffs and making tradeoff decisions is hard. You always feel like you are loosing one thing or the other but that’s not what we are going to talk about today.
What actually are APIs and how do they work? Find out by looking at important APIs across the software stack and learn some computer science along the way!
This post will talk about popular design principles used in the software architecture world. Architecture is about the decisions you wish you could get right early in a product or project lifecycle.
Learn to write technical specs that get shipped. Practical guide covering problem statements, buy-in, implementation plans, and spec-driven development.
Achieving scalability and robustness in system design requires careful consideration of business and architectural needs, and a deep understanding of technology
For any brand, creating its own identity is a challenging task. Especially for a start-up and small businesses, brand recognition is even more essential. Brand recognition can go a long way in influencing the success of a business. Every scale business spends a huge amount on marketing their brand and creating their imprint in people’s minds.
Learn how to represent Hierarchical Tree (Parent, Child) form data and its related operations in DotNet (.NET) CSharp (C#) Coding Programming Best Practices
Implement a better enhanced Repository Pattern in DotNet (.NET ) CSharp (C# ) following best practices Dependency Injection (DI) Inversion of Control (IoC)
Productivity software is indispensable for all of us. Dedicated tools for creating spreadsheets, writing down notes, managing our to-dos etc. ensure that we are productive in our professions. Incumbent vendors (e.g. Microsoft, Google) have dominated this space for many years — yet, there is a chance for new players to enter the stage. New challengers such as the E-Mail client Superhuman or the note-taking tool Roam Research can compete by developing highly opinionated products which deliberately omit flexibility. Instead, the software is stringently crafted around a very particular way of approaching a process, which is inherently seen as superior by the firm.
The process of testing design is becoming more and more important in the UX world. It allows you to determine if your design will work for your users and solve
Peter Norvig, the legendary Google mogul and AI titan, wrote a python essay to solve every Sudoku puzzle 10 years ago. Back then, he may not have expected that his code will inspire so many other posts and to be ported to so many different languages. For JavaScript, the latest version of the solver that I found was einaregilsson/sudoku from 2014
Learn the best practice on when to use Dependency Injection (DI), Inversion of Control (IoC) and IoC Containers. DotNet .NET CSharp C# Design Architecture
Explore the pros and cons of monolithic, microservices, and modular monolith architectures in software development to make informed decisions for your projects.
A misguided software design can hurt both the business and the technology. It is therefore vital to understand an organizations goals and optimize accordingly.
Many software development principles are worth exploring and applying. However, I found 3 of them to be extremely helpful and powerful throughout my career.
The development life cycles of applications in an enterprise environment often follow a common theme. An application begins life with a clear purpose in mind and over time has requirements brought in that cause incremental additions to the scope of the original concept. These additions could either be completely in sync with the original concept or perhaps the requirement just had no better home to belong in. As the application matures to an end-of-life state it has now grown far past its original intended purpose and is in dire need of a refactor — breaking down the monolithic beast into smaller and more succinct components.
Design debt is a common yet rarely discussed problem startups face in iterative and incremental software development. Learn what it is, where it comes from, and why it is so important to prevent it.
Software development or programming is not easy until you are a hardcore programmer. A while back, programmers had to code on dull command prompt screens, run the code on a separate compiler then debug it on some third platform. Today, although, programming needs the same dedication and efforts, it has become easier to code, compile, and debug in the same environment. All thanks to IDE-Integrated Development Environment platforms, which enable coders to perform all the major functions of programming in one place.
The cumulative effect of a large number of Input and Output requests has a significant negative impact on the performance and responsiveness of a service.
Incessant scrolling while using an application is perceived as a flaw on both mobile and desktop. To address this concern, a shift to horizontal scrolling of elements is in trend now.
Find out when start-ups and scale-ups should leverage Design Systems to develop new apps features and the main benefits it offers to keep costs at a minimum
Unlock innovative product design strategies in Designing in the Dark by Angelina Severino. Embrace creativity from diverse sources for groundbreaking solutions
What is common between streaming movies on Netflix, searching for information on Google, buying clothes on Amazon? You interacted with data services built on distributed systems. You interact with the largest distributed system daily: the Internet.
Technology in business is a phenomenon that is taking over the world. Business is certainly not going anywhere anytime soon; technology is the only way to go. Business needs to have the right tools in place to compete in a competitive corporate environment.
How would we build an experience like the one above?
Demo Repo
Some applications need to limit users to a single client or browser instance. This post covers how to build, improve, and scale this feature. We begin with a simple web app with two API endpoints:
Learn paging/partitioning mathematical equations and how to apply them in JavaScript (JS) and DotNet (.NET) CSharp (C#) code. Coding Programming Development
Know when to depend on String.GetHashCode() in DotNet (.NET) CSharp (C#), and when not. Coding Programming Software Development Engineering Architecture
A product team is the backbone of any company with a digital offering. They're responsible for constructing goods or a service that not only provides value to users but is also a reflection of the organization they work for. Product teams spin many plates at once, spanning duties from product management, product marketing, user experience, and product analytics. In the below article, we talk through the 4 characteristics that make up a high-performing product team.
Eye-catching and beautiful graphics rule digital media. Any business requires graphics in its brand promotion creatives to showcase their brand and convey their message clearly. Whether you wish to make a featured image for your blog or edit product photos for posting on social media, you need the best graphic design software to make or edit your graphics.
Yes, we've finally reached a point where design is such a huge piece of a product's creation and maintenance that a whole paraphernalia of software will definitely be an essential asset to your projects. Each program will fill different needs and facilitate the best and most efficient work deliveries, be it structure, visual design, illustrations, interactions or animations.
Learn about the Facade design pattern in C# and how it simplifies complex subsystems. Check out these 4 code examples to see how the facade pattern in C# works!
Cloud-only AI is failing real-time CAD. Discover why a hybrid edge inference architecture is now essential for performance, compliance, and keeping designers in
Whenever you’re developing software, a certain amount of refactoring and rewriting is inevitable. This is sometimes due to a new idea that will simplify the design or a change to the project requirements. But unfortunately, it often also happens because of a misunderstanding about how the software will connect and interact with its external environment. While it’s impossible to completely avoid such miscommunication, you can minimize it by using a principle I call writing software from the outside in.
Mitul Gajera, designer of the stable value coin ARTH explains and gives insight into how the cryptocurrency was designed to protect the user's purchasing power.
Explore the 'Buy vs. Build' dilemma in software development. Understand competitive advantage, cost implications, and factors affecting the decision for strateg
Before I learned how to build apps with code, I thought software development would be like building something out of wood... you learn a couple of basic skills,