因為今天是最後一天了,我趕緊在這次結束前提出一些前一晚上想到的問題

1. 在TDD的循環中有重構,那 DB 也會進行重構嗎?

在TDD 的重構的過程,其實也經常會重構資料庫 ,

但重構資料庫這裡有一個很重要的點,是要如何做 DB Migration

from : Odd-e CSD Course

經過討論後,整理出上面這張圖,可以看出。不管在 Test Case 與 Production Class 及 DB 的部分,
都會有重構的動作產生

2. 在 TDD 的過程中,是否就是在做 Domain Driven Design 呢?

TDD 其實也有一點 Domain Driven Design 的味道。 但事實上還是有差別的 , 可以將這個當做你的一項武器,需要的時候就可以直接拿來用 。 並不一定都是 TDD

3. 如果我們都寫了測試,那這樣 QA 這個角色是否就不需要了?

TDD 的方式,其實最後在做測試的 都是已知的東西 。 而未知的東西就可以透過像探索性測試,

或是 Developer 之間互相測試 。 在這種情況下 QA的職責其實並不是這麼的明確或需要了

而且一個良好的程序員是可以成為良好的 QA ,但一個良好的 QA 要來編程就有些困難了

中午吃飯後 Terry 播了一段很讓人深思的影片,提到了 Rule 是如何讓組織變得沒有生產力

有興趣的同學可以看看

https://www.ted.com/talks/yves_morieux_how_too_many_rules_at_work_keep_you_from_getting_things_done/transcript?language=zh-tw

Code Review

在這天早上的 Code Review 裡,也重新提到了一個不好的測試是怎樣的,及透過了重構來讓這個測試目的看起來比較明確,此外 Terry 也提醒了,當寫了這種看起來複雜的測試時,應該要回頭想一想。這一個測試實際上要測的是什麼?是不是多了那些多餘的東西

from : Odd-e CSD Course

詳細可參考 https://github.com/nerds-odd-e/Mailer/commit/fe1767d37d02bd1da80a0a1539b252da35119650

Craftsmanship

在這個部分主要在探討軟體工程師的演進

從學徒到工匠最後到大師,而一個好的匠人應該要有那些心態,並且需要學習那些相關的技能

有興趣的同學,可以看看底下的宣言

http://manifesto.softwarecraftsmanship.org/

Stanly 提到他在學咖啡拉花的時候,遇到了瓶頸 ,但某次遇到一位 Mentor 後,透過 Mentor 的指點,讓他在突破那塊碰壁的天花版後,發現學習開始變的容易。

而其中有位教練曾經面試三關都過了,但對方最後告知沒有錄取。

原因是因為現在沒有資深的能帶他半年,對我來說是蠻有趣的方式,而且據說他們軟體開發的品質也非常的好。

最後還可以透過多參加社群聚會,藉由 Coding Dojo 的方式來提昇自已..等等
Retrospective

Sprint Review

這次 Sprint Review 其實是失敗的,整個團隊但很有收獲。

首先夥伴提到了一個,如果 Task 沒有符合當初 DOD 合約裡面的條件,其實是不能算做是 DONE 的應該稱為 It's Work

原因是前幾天我們都佈署的非常順利,但在週五的時候才實際開始做 Jenkins 上的
Acceptance Test ,結果一路 Fail 到 Spring Review 之前 。感覺起來挺可惜的

回顧會議

透過時間軸的方式,從週一到週五 分別利用便利貼 寫下 你喜歡、不喜歡、還好的事項 。 每個人要行投票後,談談這個事項的想法

在這中間我們的夥伴問到開發團隊應該要關注產品風險嗎?

Terry 說,其實在一開始的 product backlog 裡。 產品風險就已經分散了,而且在 PB 裡 只有做的優先順序,沒有所謂的風險順序。

最後畫了一張圖來談說,事實上 PO 會談論的觀注點是那些 (紅框處)

from : Odd-e CSD course

最後要小心一個點 ,不要為了想證明自已是很行的,而從工程師轉變為管理階層 ,通常這樣都不太有好下場,在現在世界變化快速的情況下,保持自已良好的工程思維是很重要的。

此外,在提到經驗時也舉例了,有些人說他有十年的經驗,但實際上可能十年都在做同樣的事,要突破自已要先跨出安逸區

收尾 

最後我們團隊每個一人寫下 未來的長期目標 以及下週 Sprint 想做的事

大聲的對著河的對面的未來自已說出來,許下承諾

而我的初期目標其實是想建構 Jenkins 流程到我們的公司裡 ,但 Terry 提醒我 記得在做 Jenkins 時,要將這樣的東西加入版控

因為如果沒有了版控。 如果專案有天不幸要 Rollback 的話,很有可能目前的建構環境是完全不能符合需求的,這時候的 Continue Integration  就失效了

最後問了下 System Thinking 是不是他們目前有在使用, 他們說針對大項目時其實是會用的 。 但小項目幾乎是沒有在使用

最後

這幾天我其實都一直問教練關於我們公司裡的問題 。 事實上,有些問題其實我心裡應該也有答案了,但總是想找些支持。不過透過這樣的問答,有些時間讓我多了一些新想法

比如其中一個是,不要做 Prototype  ,而事實上我再仔細問了下,其實是如果要做的話,利用 Backlog 的方式來進行也許會比較好。 我再仔細想了一下,當整個 Prototype 都完整做完了 。其實有點像是 PM 已經把所有的功能都定死了 ,開發只要 follow 就可以了!

此外,最主要的是,了解到一個 Agile 開發團隊要著重的是什麼 ? (事實上就是 Product backlog 的完成)

在經歷了這五天的燒腦後,有些東西其實更明白了。但其實遺憾的是,我覺得我準備的問題其實不夠多。如果能再多一點,相信收獲可以更多。

我也十分推薦這門課程,如果你對 How to be a Agile Developer 十分有興趣,可以在這五天中找到你所想要的答案,也提醒你!這門課程很辛苦,但 Stanly 泡的咖啡十分好喝,可以搭配服用 !!

最後附上一張這五天的一個設計總結,如何透過測試了解當下的設計是否已經達到商業目標

一般來說早期的設計不太會往右側移動,也就是一開始的設計不會常常見到泛化的設計手段

比如: List<T> 、 Interface 、Design Pattern 等等…

當早期發現有種現象出現時,很有可能已經 Over Design 了

from: Odd-e CSD Course

對課程有興趣的同學,可以到以下網站找到相關的資訊

https://www.odd-e.com/

Odd-e CSD Course Day 5的更多相关文章

  1. [LeetCode] Odd Even Linked List 奇偶链表

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  2. Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  3. LeetCode 328. Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  4. tr:even 与tr:odd

    :even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...

  5. Leetcode Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  6. CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))

    nth-child(odd):奇数 nth-child(even):偶数 使用时,如果是精确到数字时,切记是从同一级别的元素开始计算,而不是指定某个类才开始计算. 比如: <li>< ...

  7. [CareerCup] 5.6 Swap Odd and Even Bits 交换奇偶位

    5.6 Write a program to swap odd and even bits in an integer with as few instructions as possible (e. ...

  8. [Educational Codeforces Round 16]C. Magic Odd Square

    [Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...

  9. 328. Odd Even Linked List——多利用fake_head

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...

  10. 越狱Season 1-Episode 12:Odd Man Out

    Season 1-Episode 12:Odd Man Out -Sorry to keep you waiting. 抱歉让你等了半天 -Oh, it's, uh, not a problem. 嗯 ...

随机推荐

  1. OKHttp源码学习--HttpURLConnection HttpClient OKHttp Get and post Demo用法对比

    1.HttpURLConnection public class HttpURLConnectionGetAndPost { private String urlAddress = "xxx ...

  2. Universal-Image-Loader源码解解析---display过程 + 获取bitmap过程

    Universal-Image-Loader在github上的地址:https://github.com/nostra13/Android-Universal-Image-Loader 它的基本使用请 ...

  3. asp.net core系列 44 Web应用 布局

    一.概述 MVC的视图与Razor页面经常共享视觉和程序元素,通过使用布局来完成,布局还可减少重复代码.本章演示了以下内容的操作方法:(1)使用通用布局,(2)自定义布局,(3) 共享指令,(4)在呈 ...

  4. [翻译 EF Core in Action 2.0] 查询数据库

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  5. string转QBytearray

    最近在程序中遇到要把图片的二进制string存成图片到本地,其实就是写文件 structCameraInfo tmpCameraInfo; string strData = tmpCalibrateR ...

  6. 织梦dedecms如何修改关键词的字数长度限制

    亲测,这个教程比较完善,百度了很多有些少步骤,或者方法根本不对,导致不成功.这个方法我亲子测试了.奏效. 首先登陆数据库后台,如phpmyadmin,找到相应的数据表dede_archives和ded ...

  7. TensorFlow 2.0 Alpha pip安装指令

    TensorFlow 2.0 Alpha目前已经可以通过pip安装,亲测有效,安装指令为: # 普通版本 pip install tensorflow==2.0.0-alpha0 # GPU版本 pi ...

  8. Android USB Headset: Device Specification

    For USB headsets to work seamlessly across the Android ecosystem, Android devices must support them ...

  9. 跟我一起学opencv 第三课之图像在opencv中的表示-Mat对象

    1.下面第一章图是一位美女图像,和其他数据一样图像在计算机中也是以二进制存储,下面第二张图 2.在摄像头眼里一幅图像就是一个矩阵或者说是二维数组,数组元素是像素值 3.opencv中以Mat对象表示图 ...

  10. Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩

    一.问题场景 最近在做数据统计功能,需求是导出大数据量的excel,时间间隔较长,大概需要十秒左右,点击导出后,页面没有做任何处理,用户也不知道是否正在导出:如果没有做交互上的限制,用户可以一直点击导 ...