import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 程式資訊摘要:分別用Lambda及傳統for loop 寫出 data 中不包含 comparedData 的元素
* 類別名稱 :TestLambda.java
*/
public class TestLambda {
public static void main(String[] args) {
List<String> data = Arrays.asList("apple", "ball", "cat");
List<String> comparedData = Arrays.asList("ball", "cat");
// lambda
data = data.stream().filter(
d -> !comparedData.stream().filter(
c -> d.contains(c)).findAny().isPresent())
.collect(Collectors.toList());
// for loop
List<String> results = new ArrayList();
for (String d : data) {
boolean found = false;
for (String c : comparedData) {
if (d.contains(c)) {
found = true;
break;
}
}
if (!found) {
results.add(d);
}
}
data.forEach(d -> System.out.println(d));
results.forEach(d -> System.out.println(d));
}
}
2016年1月25日 星期一
分別用Lambda 和傳統for loop 找出List 中不包含另一個List 的元素
The Intern 高年級實習生 重點
To employee:
1. 取得主管信任,比工作實力、學歷重要,因為學歷實力好取代,但信任感很難被取代,除非主管本身也是別人的打工仔
2. 承上,取得主管信任的方法,就是讓主管覺得「你跟我是一國的」,所以要跟他同一陣線,不論他的決策有多漏洞百出,反正那本來就是主管的職權,做錯了也不是你的責任
3. 不經意地說出自己以前很強或貢獻,主管比較容易聽得進去,例如在加班的時候講,主動講的時候其實主管也只是聽過就忘
4. 越有主見的主管抱怨越多,只要靜靜聽就好,不需要提出建議,也不太需要跟著他罵人,因為罵別人也可能造成主管對你的印象就是個負面的人,反之只要鼓舞主管,肯定不會錯
5. 職場上沒有人真的喜歡聽批評,別把「聞過則喜」用到職場上,所以千萬不要檢討主管,是任何主管,不單是直屬主管
6. 要跟同事或主管身邊的人好好相處,因為將來主管要提拔你,料想其他人不太會反對
7. 你做的每件事都有人看得到,不論多小的事,只要有人看到,就會有個印象分數,你永遠料不到何時別人的一句話而讓你黑掉或翻紅
To manager / boss:
1. 要懂得廣,底下的人才不敢呼嚨你,你越能掌握真實狀況,做出的決策就更精準
2. 不論產業或技術如何變化,或主管自己有多強,請記得經驗無價
1. 取得主管信任,比工作實力、學歷重要,因為學歷實力好取代,但信任感很難被取代,除非主管本身也是別人的打工仔
2. 承上,取得主管信任的方法,就是讓主管覺得「你跟我是一國的」,所以要跟他同一陣線,不論他的決策有多漏洞百出,反正那本來就是主管的職權,做錯了也不是你的責任
3. 不經意地說出自己以前很強或貢獻,主管比較容易聽得進去,例如在加班的時候講,主動講的時候其實主管也只是聽過就忘
4. 越有主見的主管抱怨越多,只要靜靜聽就好,不需要提出建議,也不太需要跟著他罵人,因為罵別人也可能造成主管對你的印象就是個負面的人,反之只要鼓舞主管,肯定不會錯
5. 職場上沒有人真的喜歡聽批評,別把「聞過則喜」用到職場上,所以千萬不要檢討主管,是任何主管,不單是直屬主管
6. 要跟同事或主管身邊的人好好相處,因為將來主管要提拔你,料想其他人不太會反對
7. 你做的每件事都有人看得到,不論多小的事,只要有人看到,就會有個印象分數,你永遠料不到何時別人的一句話而讓你黑掉或翻紅
To manager / boss:
1. 要懂得廣,底下的人才不敢呼嚨你,你越能掌握真實狀況,做出的決策就更精準
2. 不論產業或技術如何變化,或主管自己有多強,請記得經驗無價
2016年1月6日 星期三
Design Pattern 線上課程筆記
程式語言趨勢觀察:
1. 新動態語言如python, node.js 會不會取代現有流行語言?不會,因為訴求不同,也各有強項,例如:ecosystem, multi thread 支援程度
2. python 及 JavaScript 現在沒有multi thread,但python 以後會有
內功心法:
1. 不要打掉重鍊,因為老闆不會欣賞refactoring 的效用,而是要在開發新功能的時候順便包裝refactoring
2. 資深開發者的價值在於 (1)歸類的能力,例如:模組的顆粒大小劃分、Single responsibility 的符合程度 (2) exception handling 的經驗
3. 軟體 生命週期的 40~80% 都是在維護,所以寫出好維護的程式碼比開發速度重要得多
4. unit test 可當作sample code,不論是寫給社群的人看的或是給接手的開發者看都有幫助
5. 因為人不完美,所以unit test 很重要
6. Q&A說到 每個組織的SA 往往是資深的工程師擔任,但SA 可能以前很強,現在卻會拖累團隊,因為技術已經跟當年不一樣
7. Q: strategy 或 state pattern 有些功能只有部份 concrete classes 有,那其他的concrete classes 是否也要寫 dummy function?
A: Yes
8. Q: Template 或 strategy pattern 可否用第一個concrete class 當作 base class ,讓其他變形繼承記好,而不是每一類 strategy 都造個 interface?
A: Yes
9. Q: 新人會不會有over design 的問題?
A: 建議先寫功能後再開始慢慢套用pattern,如果沒套用 pattern 會讓程式混亂才需要套用pattern,就不會有over design 的問題
10. Q: 動態語言或functional programming 也需要design pattern嗎?
A: 可以用語言本身的特性達成相同效果就用
補充:
a. concrete class: 就是實作 interface 或繼承abstract class 而實際在做事的class
b: strategy 或 state pattern: 看下列例子很好理解
http://teddy-chen-tw.blogspot.tw/2013/08/strategy-pattern.html
https://www.dotblogs.com.tw/ricochen/archive/2012/02/09/68609.aspx
1. 新動態語言如python, node.js 會不會取代現有流行語言?不會,因為訴求不同,也各有強項,例如:ecosystem, multi thread 支援程度
2. python 及 JavaScript 現在沒有multi thread,但python 以後會有
內功心法:
1. 不要打掉重鍊,因為老闆不會欣賞refactoring 的效用,而是要在開發新功能的時候順便包裝refactoring
2. 資深開發者的價值在於 (1)歸類的能力,例如:模組的顆粒大小劃分、Single responsibility 的符合程度 (2) exception handling 的經驗
3. 軟體 生命週期的 40~80% 都是在維護,所以寫出好維護的程式碼比開發速度重要得多
4. unit test 可當作sample code,不論是寫給社群的人看的或是給接手的開發者看都有幫助
5. 因為人不完美,所以unit test 很重要
6. Q&A說到 每個組織的SA 往往是資深的工程師擔任,但SA 可能以前很強,現在卻會拖累團隊,因為技術已經跟當年不一樣
7. Q: strategy 或 state pattern 有些功能只有部份 concrete classes 有,那其他的concrete classes 是否也要寫 dummy function?
A: Yes
8. Q: Template 或 strategy pattern 可否用第一個concrete class 當作 base class ,讓其他變形繼承記好,而不是每一類 strategy 都造個 interface?
A: Yes
9. Q: 新人會不會有over design 的問題?
A: 建議先寫功能後再開始慢慢套用pattern,如果沒套用 pattern 會讓程式混亂才需要套用pattern,就不會有over design 的問題
10. Q: 動態語言或functional programming 也需要design pattern嗎?
A: 可以用語言本身的特性達成相同效果就用
補充:
a. concrete class: 就是實作 interface 或繼承abstract class 而實際在做事的class
b: strategy 或 state pattern: 看下列例子很好理解
http://teddy-chen-tw.blogspot.tw/2013/08/strategy-pattern.html
https://www.dotblogs.com.tw/ricochen/archive/2012/02/09/68609.aspx
訂閱:
文章 (Atom)