亞當·霍金斯的這篇博客觸動了我。Rails做爲一個行業的當前狀態和趨勢最近一直在個人腦海中。git
在短短10年間,咱們已經從「如何構建一個博客,15分鐘的演示(wups !),成長爲web基礎設施的一部分,成千上萬的職位——包括我。它只是使人興奮的咱們已經走了多遠。這是由於純粹的辛勤工做和奉獻精神,來自(相對)少數人,他們癡迷於讓web開發更好、更聰明和更加充實和有意義。web
但隨着Rails的大規模增加,對於咱們建立和維護Rails應用程序的人意味着巨大的責任,甚至更多的責任,對即將到來的Rails開發人員培訓和指導。編程
我相信任何開發Rails一段時間的人,必定繼承了有絕對巨大Gemfiles的應用程序。固然,Rails自己只是一組gem,但當審計這些應用程序彷佛也保證將會有大量的過期和廢棄的gem,gem本質上是俏皮話或猴子補丁,徹底未測試(或者更糟,嚴重考驗),或很是使人擔心的是,出現新的和閃亮的gem——常常有too-clever-for-their-own-good dsl——影響了整個應用程序的設計和架構,移除它們須要大部分重寫(你的測試覆蓋率看起來怎麼樣?)ruby
Rails的這種印象,嚴重損害Ruby和Rails開發人員的聲譽,更嚴重的是,Rails和Ruby自己。微信
咱們怎麼會在這裏,開始改善咱們須要作什麼?架構
我認爲咱們到達這一點的部分緣由是,Ruby和Rails很容易玩!這樣他們有些是本身成功模式的犧牲品。我堅信,玩耍是絕對最好的學習方法,而實驗新技術對成爲更好的開發人員是相當重要的。但做爲一個開發人員對客戶(不管是做爲一個自由職業者,承包商或僱員)有很大的責任。做爲開發人員關心咱們構建的產品,咱們的客戶的幸福和成功,Ruby,Rails和Web開發人員的聲譽,咱們須要確保咱們都實踐和教授負責任的開發。這意味着對你編寫的代碼和引用的代碼負責。學習
只是由於有一個gem,彷佛當即解決你的問題並不意味着你應該將它添加到您的項目。閱讀代碼,閱讀測試,瞭解它是如何工做的,它作什麼,不作什麼,依賴它,它是如何支持,開發人員應對問題和PR嗎?很是重要的是,考慮刪除它有多麼困難。若是它將「聰明」地改變應用程序編碼的方式,它可能不是一個好的選擇。仔細考慮這些東西,在添加到Gemfile以前。測試
問問你本身你認爲這個問題應該如何解決。若是你使用它在一個應用程序中,使用清晰和明確嗎?當你離開了項目而一些可憐的人繼承了您的代碼,新的開發人員要了解發生了什麼,或者他們會開始檢查git日誌和詛咒你的名字嗎?網站
咱們須要考慮咱們如何鼓勵負責任的開發實踐在剛開始的Rails開發,同時也不阻止玩和實驗。編碼
我最近跟一個成功的CEO交談,快速增加的公司,其業務是基於一個大型的Rails應用程序。到目前爲止,Rails兌現了全部的承諾,幫助他如今的公司。可是如今,好久之前彷佛無害的開發選擇,開始妨礙公司開發新特性和測試新的經營理念的能力。這絕對不是我第一次聽到這個問題。
正如我以前說的,這是開始影響Ruby和Rails開發人員的聲譽。也許我擔憂這只是我自私,但若是Rails獲得一個壞名聲,我也受影響。Ruby是比這更好的。Rails是比這更好的。咱們是比這更好。
我徹底支持亞當在他的帖子全部的觀點。若是你是一個Rails開發人員,我強烈建議你閱讀和考慮他的建議。但請不要中止玩,嘗試,最重要的是,在Ruby中享受工做。
廣告時間:
Ruby是知識海洋的貝殼,一塊兒來撿吧。
高性價比培訓:
一個月短時間培訓,自由學習無壓力
Rails網站開發入門,費用499
Ruby和Rails課程,能夠爲進入編程領域作準備
歡迎瞭解和交流
微信訂閱號:簡學互動Ruby(jxhd-ruby)