
这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战 本系列共 5 篇,通译自:97-things-every-x-should-know License:由 CC BY-SA 3.0 获得许可; 欢迎点赞、收藏、评论~ O(∩_∩)O
终于来到第 5 篇啦,善始善终~
这位作者想说:
这位作者想说:
这位作者想说:
这位作者想说:
不说了,这位作者又是结对编程的死忠粉~
不过,有个哲学问题可以探讨:
笛卡尔说:“我思故我在”,而祖鲁族有句谚语:“他人在,故我在”,意味着:与外界的联系和互动,是形成和保持连贯完整的自我印象的重要外在条件。剥夺这些条件后,人会面临失去自我的危险。
这位作者想说:
这位作者想说:
这位作者想说:
我们前面说了 DRY 原则(不要重复自己),任何重复都可考虑进行抽象;
而 DRY 的对立原则是 WET(每次输入);
看段代码:遍历集合来进行查询
// WET:使用这个类的每个人都可能重新实现相同的查询;
public class UsageExample {
private ArrayList<Customer> allCustomers = new ArrayList<Customer>();
// ...
public ArrayList<Customer> findCustomersThatSpendAtLeast(Money amount) {
ArrayList<Customer> customersOfInterest = new ArrayList<Customer>();
for (Customer customer: allCustomers) {
if (customer.spendsAtLeast(amount))
customersOfInterest.add(customer);
}
return customersOfInterest;
}
}
// DRY:从 API 中删除暴露的原始集合,可以轻松避免上述情况;
public class CustomerList {
private ArrayList<Customer> customers = new ArrayList<Customer>();
private SortedList<Customer> customersSortedBySpendingLevel = new SortedList<Customer>();
// ...
public CustomerList findCustomersThatSpendAtLeast(Money amount) {
return new CustomerList(customersSortedBySpendingLevel.elementsLargerThan(amount));
}
}
public class UsageExample {
public static void main(String[] args) {
CustomerList customers = new CustomerList();
// ...
CustomerList customersOfInterest = customers.findCustomersThatSpendAtLeast(someMinimalAmount);
// ...
}
}遵循 DRY ,让性能更优。
这位作者想说:
这位作者想说:
这位作者想说:
这位作者想说:
这位作者想说:
这位作者想说:
呜呼哀哉,总算是干完了~
本系列是 97 个不同程序员针对编程给出的建议!
有些是新奇的,比如:技术负债、编程即设计、Ubuntu 哲学思考等;
有些是通过讲故事引人入胜的,比如:认清“状态” 中的买牛奶故事,错误的交织中的登月飞船故事等;
有些是得到重新认知的,比如:开源实现梦想、让项目说话、结对编程等;
有些是要牢记的:态度第一、重视测试、DRY 原则等......
完整看一遍还是有很多感触的,不过目前可能还只是停留在感触,或许之后会再结合实战再谈~
不过别担心,种子已经埋下了!你一定能成长为一个有调性、有尿性的程序员儿 😎
OK,以上便是系列第 5 篇分享(共5篇),关注专栏,系列持续追踪~ 我是掘进安东尼,输出暴露输入,技术洞见生活,下次再会~