开源日报 每天推荐一个 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/