Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

[後端小菜鳥]初階工程師魔鬼訓練(2)-Design Pattern / Unit Test

Posted on

11/9

這一天的行程,早上和同事調整了一下

  1. 學習design pattern: 加中火力在template method pattern
  2. 初步了解unit test
  3. 最後再錄一次Debug講解影片(這部分改到下週,因為要讓自己的大腦有遺忘,再重新連結,才會熟記)

人生就是體驗跟過生活

想要怎樣的人生,端看您想過怎樣的生活,跟想成為怎樣的人

接下來要學習的是

工程師必備技能2 : unit test

單元測試是敏捷開發方法的其中之一

這裡有學習的資源連結

https://www.youtube.com/watch?v=1Lfv5tUGsn8

先從這邊挑出文獻看

這本書是關於Unit Test的書,道行深一點在看

Growing Object-Oriented Software, Guided by Tests

https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627

**工程師內功心法 ****: **design pattern

需要在短時間內有所成長,所以沒有時間學完全部的內容

因此,我們會加重焦點在於學習template method pattern

學習連結在此:

https://openhome.cc/Gossip/DesignPattern/

這個是我要記錄的Jinja學習連結

在資訊的部分Jinja的名詞叫做Template Engine

http://jinja.pocoo.org/docs/2.10/

Design Pattern

最起始的書籍

https://books.google.com.tw/books/about/Design_Patterns.html?id=6oHuKQe3TjQC&source=kp_cover&redir_esc=y

推薦書

https://www.books.com.tw/products/0010309237

https://www.tenlong.com.tw/products/9789866761799

只能說書很多,入手之前要先去書店裡買來看


那我們就先從Design Pattern開始吧!

我說,Design Pattern 對軟體工程師而言,就像是在格鬥電玩裡頭所謂的「連續技」(Combo)那樣的東西。

https://zonble.net/archives/2014_04/1607.php

template method pattern

樣板方法模式:將一個演算法的骨架定義在一個方法中,而其中的某些方法定義在次類別中,樣板方法讓次類別可以在不改變演算法架構的情況下,重新定義演算法中的某些步驟。

對於女生最好的理解方法就是這個吧!雖然我本身是懶女人,不太保養QQ

https://dotblogs.com.tw/pin0513/2010/10/03/18072

還有另外一種很好理解的網站

http://monkeycoding.com/?p=977


今天結束了一整天,我利用上面的網站解釋了template method pattern

但同事希望我是一邊寫Code一邊解釋

在同事的帶領下,我學到的利用PyCharm的幾個功能結合template method pattern來寫程式

PyCharm > Refactor > Extract > Method

方法來寫程式,雖然不知道這要怎麼使用

但是在利用這個方法,再結合上面咖啡與茶的例子後,我的程式見聞又新增了一層

今天看到了同事幫我自己擬定的訓練流程

也就是我所稱呼的打開試煉的大門


後端工程師魔鬼訓練參考

熱身指南

  1. 學習Debug Tool, 並利用Debug工具追蹤程式流程。

  2. 學習 Design Pattern。 先專注於Template Method Pattern。能舉實例說明,如何演化一段程式為 Template Method Pattern

  3. 找一個專案程式為範本,試著還原最起始狀態,運用 Template Method Pattern 來演化出一套 Framework

初階工程師技能

  1. debug tool 能使用 debug tool 追蹤問題

  2. 開始接觸與專案相關的 Design Pattern

  3. 會執行 Unit Testing,並掌過 Arrange, Act, Assert 的 3A 開發節奏

  4. 學習 refactoring 並能識別 bad smell

專案相關技術學習

  1. Database
1. MySQL

 
2. Redis
  1. SQL Query & Profiling

  2. Docker

  3. Python

1. pandas

 
2. SQLAlchemy

 
3. requests

專案流程學習

  1. 在各個環節提問,或找相關人員對他陳述一次理解,以確保接收到的訊息是一致的

  2. 旁聽時,練習對每個任務的預估,在心中比較與其他人的差異。

  3. 透過對應的任務,在引導下實作 Test Case 與程式碼


很感謝同事幫我擬定這一套菜鳥進化魔鬼試煉

才剛把第一個練習完後,我已經了解專案,跟工程師到底在幹嘛了QQ

期望進行完這些訓練後,雖然不會變成專家,但能夠先成為初階工程師,為公司帶來效益,分攤工作量。