開源日報 每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,堅持閱讀《開源日報》,保持每日學習的好習慣。
今日推薦開源項目:《裝機 Ventoy》
今日推薦英文原文:《Why Breaking Away From Your Favorite Framework Is a Good Thing》

今日推薦開源項目:《裝機 Ventoy》傳送門:項目鏈接
推薦理由:Ventoy 是一款多ISO啟動引導程序,這款工具最大的優點就是無需格式化優盤,用戶只需要將所需的 ISO 鏡像文件拷貝至U盤中即可在 Ventoy 界面中選擇自己想要的 ISO 鏡像文件。Ventoy 具有兼容性,支持舊版 BIOS 和 UEFI ,並且也支持像 Win10 這樣超過 4GB 的鏡像文件。
今日推薦英文原文:《Why Breaking Away From Your Favorite Framework Is a Good Thing》作者:kay in t veen
原文鏈接:https://medium.com/better-programming/why-breaking-away-from-your-favorite-framework-is-a-good-thing-4ea133332d14
推薦理由:把一個工具使用順手了之後,不妨把它拆開看看,對它動動手腳,或者換一個用。

Why Breaking Away From Your Favorite Framework Is a Good Thing

Frameworks like React, Vue, Laravel, and Symfony are super popular. How to break away and improve your skills

Growing up as a developer and becoming more senior, I saw more and more the same struggles I worked with in the past years. Learning new tech based on a framework can be a satisfying thing. Within days you make the coolest solutions in little time. But in order to improve, I needed to force myself to dive deep and learn the inner workings before I was able to progress to a higher level.

Nowadays, frameworks are even more dominant than when I started. In the teams I work with, I see more and more specialized developers working years and years within a very specific framework and application. While these people are super-specialized and have great value, I also see the risk of getting stuck on the same level for years.

I myself was challenged by well-skilled developers that not only knew just their framework or even one language but also had a broad knowledge of concepts from a vast majority of languages and systems. This made me more curious than ever to know every inner working of the system and its language. It made me a 10x better developer, working faster and making better suggestions on the architecture moving forward, and it made me learn new tech more easily.

In this article, I give a rundown on how I improved my learning.

How I Improved My Learning

I don』t think it』s necessarily bad to start out with a framework when diving into coding in general, but it's good practice to look further and deeper if you do not exactly know what is going on.

Starting out with a framework can work for a whole lot of reasons. For starters, within no time you are able to develop your first solutions, documentation is often more friendly, and communities are buzzing with people eager to help.

When you are already well skilled in Vue, React, Laravel, or Symfony, it』s good practice to dive deeper. There are a lot of developers that are OK with just working code, but being curious about how it works exactly will help your learning and coding a lot in the long run.

Curiosity is the best asset of a software developer, so always be curious about 「why」 and 「how.」 When you develop a solution but don』t understand 100% of what is going on, it』s rewarding to grab a cup of coffee and dive in. I tend to use the following steps:

Read documentation

The first and by far the easiest step is to read the official documentation on the topic, either its the language documentation or the documentation of the framework. Sometimes it』s directly clear what happens and how it』s implemented, and I can quickly continue my work while the coffee is still hot.

But more often than not this is not the case. I need to look further and proceed to the next step.

Research information on the topic

The next step would be researching more than just the official documentation. Some Google searching into explanations, tutorials, and Medium articles helps a lot as well. Sometimes articles go into more depth, and this is what you need. Also, checking the official GitHub repository is a big resource as well. Look into issues on the topic, or find the file where the method you are researching is defined and see the git logs about changes on it.

Keep notes

During this time-consuming process, it』s important to keep notes and references. This not only helps you retain the knowledge inside your brain, but it』s also, as it』s often written, a best practice for learning to keep notes. I also like it as a reference. I also wrote about note-taking in the article 「Want to Actually Improve? Stop Obsessing Over Code Tutorials.」

In PHP, I use Xdebug to drill down

For PHP implementation, I generally use Xdebug to drill down to the deepest core of its implementation. It gives an overview of how the application works and routes to different implementations. I see often that frameworks also have a way to overwrite or to plug into implementations to change their behavior. This way, you get a broad overview of how an application or framework is structured and works.

In search of the concrete implementation of the framework

Always be looking for the actual implementation of your researched topic. This is often at the deepest level of the framework, and there are often helpers around existing language functions. Questions lead to questions, and there comes note-taking around the corner again. Document the entire process of researching, and if you stumble on a part you don』t understand, learn about that first before proceeding.

In the end, you will reach the concrete implementation, and you』ll have learned so much along the way that』s very valuable.

Building New Functionality in Your Framework of Choice

Another way to improve is by adding new features or functionalities in existing frameworks, instead of only modifying or implementing existing features. This forces you to know and fully understand the structure and inner workings of the framework.

With the learning you have, you could even build your own small framework. This provides very special challenges you need to overcome, and you』ll learn about researching other frameworks.

Contribute to Open Source to Level Up

The frameworks are almost always open source projects with vibrant communities and dedicated contributors. Joining these teams by helping with bugs and building out new feature requests will help you level up super quickly. By doing so you will also receive a lot of feedback on your pull requests by often seasoned developers that will check your code line-by-line. In return for your open source free work, you will receive free coaching and a lot of credit when your feature gets merged in the project.


下載開源日報APP:https://openingsource.org/2579/
加入我們:https://openingsource.org/about/join/
關注我們:https://openingsource.org/about/love/