Master TypeScript Projects with the Ultimate Clean Architecture Template and Architectural Insights

Summary of my bookmarked links from Aug 14th, 2022


  • The Ultimate Clean Architecture Template for TypeScript Projects

    This guide provides a detailed implementation approach for creating a layer-based TypeScript project template following the principles of clean architecture. It emphasizes the separation of concerns and offers a clear structure for organizing the codebase. The template consists of four layers: Core, Data, Dependency Injection (DI), and Presentation. It utilizes tools like Lerna, Rollup, and Jest for building, testing, and bundling the packages. The guide also explains how to set up the mono repo configuration using Lerna and establishes the dependencies between the packages. Overall, this comprehensive guide aims to enforce proper architecture and improve code maintainability.

  • It’s Time to Stop Saying “Software Architecture”

    The author challenges the analogy of "software architecture" and proposes a new metaphor: a software system is like a city. Unlike the construction process of architecture, software development is not a linear waterfall process. Similarly, the assumption that architects bridge the gap between business and developers is limiting. The author highlights the evolving nature of software systems and the coexistence of old and new elements. They draw parallels between posh and poor neighborhoods, scary places, migration, and gentrification, emphasizing that software systems, like cities, constantly evolve. The hope is that the software field will develop enough history and stories to render analogies unnecessary.

  • I’m Sorry, But We’re Past The “Look At My GitHub” Phase

    The value of a public GitHub profile has diminished significantly, with many companies restricting access to private repositories and individuals protecting their intellectual property. Moreover, most side-projects remain unfinished and fail to showcase a developer's full skillset. Transparency on GitHub can also be deceptive, as people often copy repositories to create a false impression. Additionally, the fast pace of technology makes outdated projects less relevant. While a public GitHub profile can be a differentiating factor, it should not be relied upon solely. GitHub remains a useful tool but is less effective in securing future opportunities than it was in the past.

  • I Almost Got Fired Just Because of “alert(‘ Crap!’)”

    This article discusses the implicit conversion rules in JavaScript, highlighting how characters can be converted to boolean values using the '!' symbol and to numbers using the '+' symbol. It explores a method to represent numbers from 0 to 9 using only '[]()!+' characters and demonstrates how to represent larger numbers. The article also explains how to use '[]()!+' to represent English letters and obtain the 'find' method of an array. Finally, it introduces the Function constructor as a way to execute arbitrary code.