做者:Sushrit Pasupuleti翻譯:瘋狂的技術宅html
原文:https://towardsdatascience.co...前端
未經容許嚴禁轉載react
在這段旅程結束時,你將會成就本身webpack
如今要寫出優秀的代碼並非一個真正的問題。一切都只是先進行 Google 搜索,而後只需找到 Stackoverflow 的第一個連接,找到最受歡迎或贊同最多的答案並複製粘貼就足夠了!git
可是這些人面臨的真正挑戰是接下來該怎麼辦,或者是說他們所學到的東西到底可以作些什麼。咱們都對最新框架的文章和視頻列表感到無力,這些文章所描述的確實比每一個人彷佛都在使用的其餘框架都更好,但不管如何咱們都會抱怨。好吧,實際上大多數只是看看,而後留下一個贊👍,還有一些評論,而後就結束了。幾天以後,你遇到的下一個文章列表也是如此。程序員
人們以驚人的速度去瀏覽這些文章或視頻。學習新東西並無什麼不妥,但真正的問題是怎樣在教程中使用的 Demo 以外來作一些東西。github
若是它像 React 或 Vue 那樣的框架,它將用來開發一個 To-Do 列表程序。若是它與 Tensorflow 或 keras 之類的機器學習有關,那麼它十有八九會用在 MNIST 數據集(識別手寫數字)上。web
我明白了,除了擴展教程中提供的示例代碼以外,很難想出一個應用這些技術的項目。有不少人在 To-Do 程序中添加了 2 個或更多按鈕,而後就去更新你的簡歷。由於你想學習新的技術來處理你的項目,由於你知道本身該從哪裏開始,也知道本身的目的,因此很天然的就去找一些資料來學習。可是不少人不會採起下一步措施,由於他們要麼確信本身已經從一門課程中掌握了框架,而且可以在須要時使用它(這是個大錯誤),或者他們對使用這些框架不太自信,由於他們缺少經驗(這是很常見但沒有錯)。而後你把本身與那些創業前輩放在一塊兒比較,他們在一個車庫裏的簡單計算機上編寫Google,你以爲更加不自信了。面試
每一個程序員都會在某些時候經歷這些。好吧,咱們知道你在這裏作什麼。你已經學習了不少東西,卻對它們一無所知,可能你以爲本身更像是個冒牌貨。那麼咱們該怎麼辦 ?redux
嗯,這裏有一些人生建議:當陷入困境時,老是去尋找靈感,最終你會找到出路。
這時,咱們須要從 MCU 宇宙中的一個角色身上汲取一些靈感——鋼鐵俠......
讓咱們開始吧,咱們將探討託尼在他做爲鋼鐵俠的11年中所穿的幾件主要的戰衣。
在早期階段,在學習編碼或使用框架時,你本身完成全部工做,去 google 出現的每個問題,以某種方式拼湊你的代碼,這樣能夠加載一些 HTML 頁面或消息顯示。
你能夠解決 Stackoverflow 答案中的全部問題,並在須要時進行回顧。
這相似於託尼如何在洞穴裏拼湊他的第一個戰衣。
雖然 Mark 1 很厲害,但它仍然很笨重,是拼湊出來的,沒法自如的飛行,穿戴的過程也必須依靠手動才行。就像你第一次嘗試建立的某些東西同樣,大多數代碼都足以顯示某些內容並知足你的基本目的。點擊一個 90 年代風格的按鈕並很酷的打開一個顯示着 Hello World 的彈出窗口,這真的是你想要的東西嗎?
固然不是。要像 Mark 2 同樣全面升級,從美學到自動化裝配和飛行功能,你的代碼也須要第二次迭代,不然它不會給其餘人留下深入的印象。
因此你從網上挑選一些設計並嘗試從新建立它們。在這裏你能夠找到一些設計靈感來激發你的創意:
如今你已經得到了一些靈感,下一步就是弄清楚怎樣才能把這種設計變爲現實。好吧,若是你正在建立一個網站或 webapp,這很簡單。你可使用工具包或 UI 框架,其中包含預先設置樣式的全部必要組件,而後開始自定義。而不是從頭開始構建。你可用的一些工具包或 UI 框架是:
你能夠經過閱讀 Google 的 UI/UX 案例研究和指南,學習設計適合絕大多數設備和用例的用戶界面。
如今 Mark 2 看起來與第一代徹底不一樣(你能夠說二者之間存在明顯的對比)Mark 2 在各方面都領先一步,但它還有本身的缺陷。這是咱們的第3課。 不斷測試!
在 Tony 完成設計並穿上 Mark 2 以後,他開始測試,他直接跳到了飛行測試中,用套戰衣飛得很高。因爲結冰,它沒法在更高的高度上工做。若是他在沒有考慮到這些結果的狀況下進入戰鬥,他就不會如此優雅地取勝。
所以,要儘量地去測試你的代碼。這裏有幾個爲 Python 和 JavaScript 編寫測試的連接
你編寫的測試越多,對代碼的信心也就越大,特別是在演示或部署代碼時。
與 Mark 2 相比,Mark 3 多是一個小小的增量更新,但這是必要的,你知道爲何。因此不要跳過測試。
這是很是小的,但在某些時候你要意識到項目文件夾中的源文件太大而沒法隨身攜帶進行演示,你不能老是但願從本身的筆記本電腦中進行演示。因此要考慮將你的項目打包成可執行文件或部署到服務器,以便在你外出時更方便你訪問和演示。
從外觀來看,Mark 4 可能看起來就像是一個微小的設計調整。可是它有一個全新的反應堆,徹底用一種新元素重建。他之因此決定這樣作,由於從長遠來看,以前的能源核心並不成功。
這就是第 4 課,識別沒法解決的問題。
有時候,當你工做時,會意識到所付出的努力並無真正實現,這是由於你所處的環境,選擇的框架等所施加的限制。託尼面臨一樣的問題。所以,當你的 PHP 腳本(請不要使用PHP)等核心組件沒法知足你的需求時,就應該換工具了。
這是我早年做試圖構建本身的「 賈維斯」時遇到的問題。當我在大約 6 年前剛開始時,決定使用依賴 C## 的 Windows Forms(是的,我這樣作了,並不值得驕傲,可是你確定會很高興看到緣由)。它提供了我當時設計所需的一切。經過 .Net 進行語音識別,輕鬆拖放UI構建器(當時我選擇它的主要緣由)。這樣我構建了第一個版本並提供下載。
這不是最好看的,但我爲此感到自豪。但很快我意識到 WinForms 已通過時了,因此我決定將 WPF 轉換爲另外一種用於 UI 設計的 Windows 技術,它提供了更精細的控制(與 WinForms 相比)它支持XAML,基本上是一種用 HTML 建立 UI 的美化方式,經過添加標籤、屬性、同時仍然保持拖放功能。在這一點上,我開始欣賞像 HTML 這樣的控件的控制水平,我能夠作動畫,自定義主題。這讓我想要學習愈來愈多的東西。在這一點上,我逐漸喜歡上了 Material Design 並繼續前進。
這是我爲桌面版本作的最後一次迭代,而後轉而使用 web 技術
正如你所看到的,我在 SAM 的開發過程當中屢次更改了本身的核心平臺,如今是Braggi。不斷改變平臺是一個巨大的痛苦,而從 WinForms 到 WPF 的轉換仍然在 C# 上,一旦我切換到 React,就應該使用 JavaScript。全部代碼都會變得毫無用處,但正是這些變化使我成了全棧開發人員。
所以對於本節的結論,我想說的是,大膽地思考怎樣更改,直到再也不削減它的規格和框架。你作出改變的速度越快,麻煩也就越少。
託尼也採起一樣的方法。始終保留舊工做的備份,防止萬一沒有按計劃進行,你至少能夠展現一些東西。
全部不斷更新的戰衣都有一個共同點:就是它們裝備起來很是容易,Mark 7 能夠做爲一個完整的包裹被自動送達,而 Mark 42 能夠由微小的零件自動組裝。
這裏的關鍵點是對於 Web 開發人員來講是必不可少的。
當你的產品依賴於用戶的互聯網鏈接時,來回傳輸的每一個字節都必須儘量的進行有效地壓縮和組織。
讓咱們看看在將網站部署到託管服務時必需要執行的一些操做。
左:常規 CSS | 右:壓縮 CSS
Mark 50 - 85 基本上都是關於使戰衣適應環境、搭載武器和靈活的支持。這是一種混合和模塊化的方法。
每一個戰衣都是如此靈活,每一個戰衣都有一套武器,這是它本身的目的,不是全部的均可以進入外太空,或者能讓綠巨人也能操做。
雖然爲某些用例編寫自定義模塊很好,但你但願可以儘量多地重用代碼。固然,你所擁有的那些過渡動畫很酷,100 行的 CSS 使它們看上去就像是真正的藝術做品,可是若是它們只能使主頁上的滑塊看起來很好的話,那會有什麼用呢?
編寫代碼時,應記住能夠重用某些組件的位置。
像 React 這樣的框架很是關注可重用的組件。幾乎三分之二的登陸表單均可以重複使用下面這種組件。
儘可能減小重寫相同組件和邏輯,儘量重用。設定一些條件,以便在檢測到狀態更改時,表單的某些元素可以被禁用和隱藏。例如,若是表單狀態設置爲「登陸」,則不該顯示密碼確認和全名字段,而且必須將文本更改成「登陸」。請記住,避免冗餘代碼能夠節省空間,最重要的是可以提高性能!
在電子表格或 Adobe XD 上逐步規劃你的設計(這是免費且使人驚歎的專業展現) 。隨着時間的推移,你會習慣於在紙張上規劃你的設計,而後將你的代碼混合在一塊兒。
另外一個有用的提示是爲本身建立樣板模板,這樣你就能夠重新項目的模板開始,而不是再次搜索全部內容。因此,即便你完成了這個項目,你也能夠馬上開始一個新項目。
我建議的一些好的bootstrap存儲庫是:
寫下你的要求並分析你的項目所需的更多內容並瞭解它們。一旦你完成學習,將它們整合到你的項目中,不斷打磨並重復,直到有了一個能讓你有信心向全世界展現的版本。
請記住,成爲軟件工程師的旅程將是一個須要大量學習,理解和從新學習的過程。每一個框架和語言都有本身的學習曲線和優缺點。在作出決定以前,請務必始終考慮這些因素。
正如我以前所說的,我花了很長時間才意識到本身真正想要的項目,最終的產品在通過屢次推翻後才得以實現。若是你發現本身常常推翻本身的想法,不要懼怕。最終你會更習慣於構建東西。因此請繼續製造瘋狂的東西,打破它們,修復它們並從新加工它們。
因此這一切都在我身邊,請在下面的評論中告訴我你的想法👇。 很想聽聽你的經歷和建議😁。
堅持下去!