The right CI/CD setup and workflow for publishing npm packages using CirclerCi

Image for post
Image for post
Photo by Milad B. Fakurian

Introduction

Publish has some side effects:

  • Versioning
  • Different stages/environment release
  • Keep track of release

What we need is a workflow that supports team and project requirements. There are two well-known workflows that influenced the software development community. Github-Flow and Git-Flow, what we are going to use is Github-Flow but there is a good article that discusses the differences between the two. …


Things you should know before starting a career in front-end development

Image for post
Image for post
Tomb of Hafez, Shiraz

This is an article for anyone who wants to start front-end development without a programming background. The end goals are to help enthusiasts understand the fluffy world of software development and to enable them to find their way in this crowded ecosystem. The result is a road map for starting the learning process.

Table of Contents

  • Introduction
  • The web basics
  • Web development technologies
  • The process of writing code to make it live
  • Software development ecosystem
  • Front-end development technologies
  • How to pick the right tools
  • Plan and road map
  • Learning material
  • Conclusion

Introduction


Here is the link to Part-1 which talks about concepts.

Image for post
Image for post
Borujerdi House Kashan — Photo by @Saman.rafsanjani on Instagram

In this article, we are going to explore the implementation of Clean Architecture. Here is the GitHub repository that you can refer to. The business logic here is a To-Do application.

If you got here from a link or through search engines, consider there is another part that you should look into it first. Part-1 covers the conceptual and definitions of the Clean Architecture pattern.
Part-1

Table of Contents

  • Structure
  • Core
  • I/O Frameworks
  • Entry Points or Drivers
  • Configuration
  • Conclusion
  • References

Structure


With a real-world example in TypeScript

Image for post
Image for post
Photo: Nasir-Ol-Molk Mosque By MohammadReza Domiri Ganji

Before reading, note that this article is written to understand the clean architecture pattern conceptually and in the next part there is a sample code implementation. This means that to learn it, you need to practice the pattern by writing code.

Clean architecture is a practical software architecture solution from the Legendary Robert C. Martin (a.k.a. “Uncle Bob”). By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system.


I guess no one more than software developers is fascinated with technology advancements. We are eager with trying new technologies and learning them especially in term of software.

Problem

Image for post
Image for post
image from vectorstock

One of the reasons you can not change the platform and stuck with the current frameworks and databases or etc. is Tight Coupling. Yes, Tight Coupling in the heart of your platform prevents you to change it because change means a lot of unwanted consequences and extra work. …


TypeScript best practices

Image for post
Image for post
Photo by the author.

This is a pretty straightforward tutorial on using module path import instead of relative path import in TypeScript. We’ll also cover getting rid of “../../../” on top of your files.

Problem


Image for post
Image for post

آرمان تنها فرزند خانواده است، پسری یا بهتر بگویم پیر پسری که تقریبا در اواخر ده سی زندگی خود بسر می برد. اتفاقات زندگی سرنوشت او را از هم سالان خود متفاوت کرده است، پدر و مادر آرمان خانم و آقای مهرپرور نام دارند و با اینکه آرمان نزدیک چهل سال سن دارد همچنان فکر میکنند نسبت به آرمان و نگهداری و پرورش او مسئولیت دارند.

از سرنوشت متفاوت آرمان گفتیم اما این تفاوت چیست. آرمان در این سن همچنان وابسته به خانواده است و از اعتماد به نفس و عزت نفس پایینی در اجتماع برخوردار است. این گونه افراد در اجتماع هیچ وقت دیده نمی‌شوند عموما مردم آنها را خاکستری می‌بینند و از کنار آنها مثل انسانی که ناتوانی رو خورد انتخاب کرده عبور میکنند دریغ از اینکه عدم اعتماد به نفس و نداشتن عزت نفس انتخاب نیست بلکه یک معلولیت است. …


For teams with JavaScript/TypeScript mono repositories

Image for post
Image for post
Photo by Max Duzij on Unsplash.

If you are setting up a mono-repo consisting of JavaScript/TypeScript projects and you want to work on it with your team, then you need to setup ESLint properly.

There are already tools like husky and lint-staged that you can utilize to set up ESLint on git hooks, but when it comes to mono repositories, those will not work properly in subdirectories.

This is a quick tutorial on how to set up pre-commit git hooks in a mono-repo and how to ensure that everyone on your team has control and thus a consistent experience with ESLint.

Here’s what we’ll be going…


It is interesting when you find out that your brain is not using its knowledge as a reference and instead it is using a Third Party database as a source of truth and only caches the correct and incorrect records :)

Image for post
Image for post

This is my situation nowadays I am using an outside database service as a reference for my knowledge and do not persist any facts inside my brain. I just cache them for while and then in the next fetch from third party database I do update my cache. My job is a software engineer and I wasn’t aware of these changes until I started learning how to cook. Actually I found out I m doing daily tasks as the way I search for a best practice for my software development issues.

I born in 80’s so consider me as someone who was reading a lot of references at the time of school and needed to remember those stuff for exams. at the time I was student teachers the school and even parents were teaching us to persist more blob of data into our head, a lot of algebra, physics, and geography for the hope of someday they will be used in our life and become handy. …


Image for post
Image for post
Ramda.js

It all started on a dark day in December 2018 in Stockholm. I was relocating to Stockholm and starting a new job in a new company, and when I got there, everyone was preparing for January vacation. My onboarding guy put me on a legacy project, which they got from the hack-week project, and told me to make changes to this project and get it ready for production by April. I thought, OK, I’m starting a new job, so I should deliver everything when everyone comes back from vacation.

I pulled the git repo and saw that this project was written completely in Reactive and Functional programming style in JavaScript. I didn’t have any background in Reactive and Functional programming with JavaScript. …

About

Alireza Bonab

Entrepreneur in Spirit, Engineer by Training, Adventurist by Nature

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store