Odd-e CSD Course Day 5
因為今天是最後一天了,我趕緊在這次結束前提出一些前一晚上想到的問題
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 是如何讓組織變得沒有生產力
有興趣的同學可以看看
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
對課程有興趣的同學,可以到以下網站找到相關的資訊
Odd-e CSD Course Day 5的更多相关文章
- [LeetCode] Odd Even Linked List 奇偶链表
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- LeetCode 328. Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- tr:even 与tr:odd
:even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...
- Leetcode Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))
nth-child(odd):奇数 nth-child(even):偶数 使用时,如果是精确到数字时,切记是从同一级别的元素开始计算,而不是指定某个类才开始计算. 比如: <li>< ...
- [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. ...
- [Educational Codeforces Round 16]C. Magic Odd Square
[Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...
- 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 ...
- 越狱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. 嗯 ...
随机推荐
- (2)STM32使用HAL库操作外部中断——理论讲解
1.中断触发过程 对主程序压栈--把中断服务函数的地址写入到程序计数器(PC)--执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示, ...
- ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理)
前言 时间一晃 ASP.NET Core已经迭代到2.1版本了. 迫不及待的的下载了最新的版本,然后生成了一个模版项目来试试水. ...然后就碰到问题了... 我发现..cookie竟然存不进去了.. ...
- quillJS 富文本编辑器源码分析系列1
quillJS 富文本编辑器目前是一款很火富文本编辑器,使用广泛,github 上面的 star 有 22,492,虽然说不以 star 论英雄,不过这可以说明它还是比较受欢迎的: 它的特点是:轻量, ...
- nodeJs的nodemailer发邮件报错hostname/IP doesn't match certificate's altnames怎么解决?
今天在开发过程中碰到一个问题,即使用node发送邮件时报错hostname/IP doesn't match certificate's altnames,在网上查了解决办法有两个, 加rejectU ...
- 理解 Node.js 的 Event loop
问题 考察如下代码,脑回路中运行并输出结果: console.log("1"); setTimeout(function setTimeout1() { console.log(& ...
- 简单Java类 全网最详细讲解 !!!
最近学习java非常吃力,学习的进度很快,由于基础没打牢固,整体上项目理解很吃力,偶尔会遇到一些基本的概念,都会阻碍整体的理解.最近也看了不少的视频讲解,听得很迷,最后搞得很乱,没有明确的学习目标,今 ...
- 服务端预渲染之Nuxt (使用篇)
服务端预渲染之Nuxt - 使用 现在大多数开发都是基于Vue或者React开发的,能够达到快速开发的效果,也有一些不足的地方,Nuxt能够在服务端做出渲染,然后让搜索引擎在爬取数据的时候能够读到当前 ...
- Windows核心编程第二章,字符串的表示以及宽窄字符的转换
目录 Windows核心编程,字符串的表示以及宽窄字符的转换 1.字符集 1.1.双字节字符集DBCS 1.2 Unicode字符集 1.3 UTF-8编码 1.4 UTF - 32编码. 1.5 U ...
- kubernetes实践之四:深入理解控制器(workload)
一.Pod与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label-selector相关联 Pod通过控制器实现应用的运维,如伸缩,升级等 二.Deploy ...
- 在阿里云服务器windows server2012r iis上部署.net网站
先说一堆废话:之前在阿里云上租了一个服务器,也配置了相关的环境,然后准备把自己手上的一个小网站挂上去,就按照我的上篇博客记载的方法把发布好的网站发布到服务器的iis上,结果发布之后死活访问不了,始终显 ...