66 Stories To Learn About Software Design

cover
4 Dec 2023

Let's learn about Software Design via these 66 free stories. They are ordered by most time reading created on HackerNoon. Visit the /Learn Repo to find the most read stories about any technology.

1. Resolving the Blocked a Frame with Origin "null" From Accessing a Cross-Origin Frame Error

Learn how to resolve the "blocked a frame with origin "null" from accessing a cross-origin frame error."

2. Saying No - A Five-Point Framework

Learn how to identify the signals that it’s time to say no

3. The Goals of Software Design

A misguided software design can hurt both the business and the technology. It is therefore vital to understand an organizations goals and optimize accordingly.

4. Design Pattern: Strategy Pattern in Practice

Learn strategy design patterns with practical examples. Why and how to use strategy patterns in software design.

5. Common Mistakes Made by Developers While Redesigning

Mistakes made during software redesign - Perfection, following a trend, hitting with a big hammer

6. How Loop Is Building A Virtual Restaurant Operating System

Sundar Annamalai and Vinod Pachipulusu about starting Loop as a virtual restaurant platform to help restaurants with their business.

7. How I Gather Technical Requirements before Building Systems

Learn about how to gather technical requirements for the systems you build.

8. How to Use Low-code Tools to Fill Your Developer Talent Gap

The demand for enterprise applications is growing faster than IT capacity due to the need for digitalization everywhere. Low-code is here to help!

9. Understanding Domain Driven Design (DDD)

DDD is not about technology. Instead, it's about understanding the problem you’re trying to solve in a business context.

10. How Experienced Software Engineers Evaluate Designs

Experienced software engineers learn what works after maintaining their work for years.

11. How to WOW Users With Intuitive UX Design

70% of online businesses fail because of bad usability. The solution to this challenge is an approach known as Intuitive UX Design

12. Python Interfaces: Abandon ABC and Switch to Protocols

Reasons to use Python Protocols instead of ABC library for Python interfaces.

13. Write Great Unit Tests by Writing Unit Tests that Fail

Any test that has never failed has no value, and therefore, can be deleted. In order for any test to add value, it must have failed at least once.

14. Redefining Serverless: A Change in Approach and Architecture

Serverless is a fantastic way of building applications, but there is a lot more to consider than simply Lambda functions.

15. Distributed Computing: Illusion of Single System

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.

16. What is Design Debt and Why is it Important?

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.

17. How to Become a Better Engineer: Steel Threads

Learn a software design approach that will make you a better engineer.

18. Software Design Principles: Doing Little Things Right

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.

19. 5 Main Things That Will Help You Understand Why Technology Is Important In Business

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.

20. The Complete Guide to Becoming a Software Architect

"I want to become a solution architect. What are the resources to learn more about architecture?" - We are all asking the wrong question.

21. 5 Essential Software Architecture Design Principles

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.

22. From Monoliths to Microservices: Migration in Practice

This isn't another "break down the monolith" article. This post is about making the applicable decisions, measuring and verifying the results

23. Software Architecture Basics: What, How & Why

Software architecture, design and process of architecting explained using a case study.

24. The Clean Code Book for JavaScript Developers: A Quick Summary

This blog post summarizes the book “Clean Code” written by Robert Martin on how to write a readable and maintainable code.

25. 10 Reasons Why You Should Learn How To Develop Video Games

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.

26. How to Test UX Design: UX Problem, Validation & User Testing

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

27. How to Build High-Performing Product Teams

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.

28. A Guide to Bidirectional Scrolling in Responsive Designs

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.

29. Figuring Out When Not To Use DI, IoC, and IoC Containers in .NET C#

Learn the best practice on when to use Dependency Injection (DI), Inversion of Control (IoC) and IoC Containers. DotNet .NET CSharp C# Design Architecture

30. How to Stop String.GetHashCode() in .NET C# from Driving You Crazy

Know when to depend on String.GetHashCode() in DotNet (.NET) CSharp (C#), and when not. Coding Programming Software Development Engineering Architecture

31. Progress From Coding Software To Engineering It

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,

32. Is it Enough to Define IMyInterface<T>? Do I Need IMyInterface as Well?

Best Practice for designing Interfaces in DotNet (.NET) CSharp (C#). When to define a non-generic interface in addition to the generic interface.

33. The One and Only Software Design Principle

If we build our entire paradigm on a single rule, we can keep it simple and make excellent models.

34. Major Aspects of Software Cost Estimation

It is well-known that software engineering is at the lead of the services that use outsourcing and outside contractors.

35. Solar Architecture: A New Perspective on Enterprise Software Development

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.

36. Exclusive Integrated Development Environments to Code The Best In 2020

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.

37. Technical Debt or Technical Fraud

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.

38. The Untold Truth of Test Driven Development

Your Practical Introduction to Test Driven Development

39. How ARTH Stablecoin Was Built and Designed to Protect The User's Purchasing Power

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.

40. AI Graphic Design Software: The Top 7 Available

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.

41. Coupling: The One and Only Software Designing Problem

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.

42. Exception Handling with Examples

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.

43. NULL: The Billion Dollar Mistake

He is not our friend. It does not simplify life or make us more efficient. Just more lazy. It is time to stop using null.

44. Mastering APIs: A Complete Guide for Beginners

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!

45. What is (wrong with) software?

Software is eating the world. Those of us who work, live and love software do not usually stop by to think about its meaning.

46. The 5 Principles of Agile Software Development  

Agile methodology breaks up the project into many phases and distributes the workloads across the teams.

47. Creating a React Application to Solving Every Sudoku Puzzle

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

48. Demystifying Software Engineering: Being Approached to Build a Feature or Tool (Part 1)

The aim of this series of posts is to help demystify what it’s like to do software work and tasks in a professional environment.

49. Writing Software from the Outside 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.

50. Software Design Patterns Explained

Software design patterns have been used to package solutions to many common design conundrums. Each one has its own advantages and drawbacks to consider.

51. Nude Models - Part I : Setters

Ye olde Reliable Data Structures and Their Controversial (Write) Access.

52. How To Design Domain Model in Kotlin

Type-safe domain modeling in Kotlin. If it compiles, it works. With Valiktor and Konad

53. Test-driven Development: How to Write Unit Tests

Tests are a way to explicitly set expectations about code. You establish them to allow the machine to check whether your code meets the expectations.

54. A Better Implementation of Enhanced Repository Pattern in .NET C#

Implement a better enhanced Repository Pattern in DotNet (.NET ) CSharp (C# ) following best practices Dependency Injection (DI) Inversion of Control (IoC)

55. The Main Equations That Can Make Paging/Partitioning Easy

Learn paging/partitioning mathematical equations and how to apply them in JavaScript (JS) and DotNet (.NET) CSharp (C#) code. Coding Programming Development

56. Is it Crystal Clear for Everybody That a Date Should Not Mutate?

To mutate is to evolve. It was proposed by Sir Charles Darwin and we use it in the software industry. But how mutable should software be?

57. Fail Fast Philosophy, Explained

Failure is fashionable. Making is much easier than thinking and failures are not stigma, let’s take this idea to our code.

58. The Era of Opinionated Productivity Software: Superhuman, Roam, What’s Next?

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.

59. 40+ Thought-Provoking Software Engineering Quotes

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.

60. 7 Best Product Design Tools Every Team Should Consider

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.

61. 7 Best AI Logo Maker Software Available Online

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.

62. Using the Builder Design Pattern in .NET C# to Develop a Fluent API

A step-by-step guide to developing a Fluent API from scratch in .NET C# using the Builder Design Pattern.

63. How to Find the Stinky Parts of Your Code (Part V)

Are we done on code smells? Probably never!

64. Difference Between Inheritance And Composition

With the introduction of OOPs, Inheritance and Composition entered our senses and still confusing us.

65. Let's Build It: Real-time Session Invalidation

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:

66. Singleton Pattern: The Root of All Evil

Allowed global variables and supposed memory savings

Thank you for checking out the 66 most read stories about Software Design on HackerNoon.

Visit the /Learn Repo to find the most read stories about any technology.