每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,歡迎關注開源日報。交流QQ群:202790710;微博:https://weibo.com/openingsource;電報群 https://t.me/OpeningSourceOrg


今日推薦開源項目:《百日機器學習 100-Days-Of-ML-Code》傳送門:GitHub鏈接

推薦理由:這是一個注重概念的機器學習教程,順手還提供了代碼(當然了是 Python 的)和數據集。它主要講關於機器學慣用得到的概念,適合於代碼基礎不錯但是剛開始接觸機器學習的人。現在已經更新了一半了,唯一的不足就是,對於英語苦手的同學來說沒辦法對著圖片用谷歌翻譯可能會是個問題。


今日推薦英文原文:《Is this real life?》作者:Emanuel Estrada TecGDL

原文鏈接:https://medium.com/@a01633605/is-this-real-life-cd9c52f42efd

推薦理由:在把你的軟體從調試環境中拿到現實里之前,你最好對它進行幾乎完美的測試。簡而言之,就是自己作為使用者想辦法破壞它,然後補上漏洞,直到你無法破壞為止。

Is this real life?

As a student, it often happens that you find yourself working on a project and think 「Wow! I』ve worked so hard in this project there is no way in hell it can break」, but the very next day you go up to present your program and the teacher asks you to try some input and, guess what? It breaks!

My most memorable experience if this occurrence happened a year ago when a friend of mine was presenting his sorting algorithm, but out of the blue the teacher suggested trying to input Russian and Chinese characters, which broke my friend』s program.

So, have you guessed the moral of this fable? That』s right, understanding that this world is not perfect and your application needs to be ready to deal with that before deploying is essential!

So how do you get ready for the real world? Understand the context, think of use cases, and most importantly test, test, test!

「black wooden framed wall decor」 by Francisco Gomes on Unsplash

Thinking outside of the box

We often hear the saying: 「Think outside of the box!」, inviting us to be creative and think of innovative and unusual ways of solving problems. This time, I want you to take the saying a little more literally: think of your application outside that perfect environment in which it was developed in.

In order to do this, it is important for developers to understand the context in which their app will be used everyday. If you are building an app for a hospital, you should have some idea of how the hospital works and thus build an app that fits their needs accordingly. You don』t have to become a doctor yourself, but doing some good research will give you the knowledge to develop a better-fitted application and even to feel more confortable around your client by not appearing completely lost when they talk to you.

Having some knowledge on the domain will help you build better and more accurate use cases to test, because the better you understand the context and your users, the easier it will be to predict their behaviour. After all, remember that a good use case clearly and accurately explains what a system does, in language that』s easily understood.

「red car on street」 by Marc Kleen on Unsplash

Test-drive that Ferrari before buying!

I know the idea of buying a Ferrari if you have the money to do so may sound appealing to a lot of people, but trust me, if you don』t test drive, a lot could go wrong. What if that exact Ferrari you chose can』t speed properly? Or what if the AC doesn』t work? You may want to make sure before everything works before taking it home, right? It would be a bummer to find out there are problems with the AC in the middle of a road trip.

Well, same thing goes for software. Before you sell or make a final release, you may want to test it out in the real world. And what』s the best part about it all? The client can start playing with it before its completely ready!

In order to do this, you should consider implementing a testing cycle, which through several phases tests different parts of your program with different ways, and polishes your application for it to be more prepared to the real world.

Graphic by Guru99

A common way to test for real-life situations and allow users to start familiarizing with the software is the Alpha-Beta testing phases. The alpha phase allows developers to simulate users and user behaviour, while beta phase allows users to start playing with the program with the disclaimer that it is not completely finished and therefore may encounter bugs, but can expect that these bugs found will be fixed before the final release.

In short, testing has to be extensive but the fact that you can even get the client involved in the process of debugging will make things a lot easier.

Conclusion

Understanding the context, thinking of use cases, and proper testing will make your final deployment much more smoother and estable. I encourage you to learn more by checking out Chapter 4 of Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOA&D by O』Reilly Media. Make sure your app is ready for the real world!


每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,歡迎關注開源日報。交流QQ群:202790710;微博:https://weibo.com/openingsource;電報群 https://t.me/OpeningSourceOrg