面向对象编程的基本理念与核心设计思想
-
解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。
-
继承(Inheritance)与聚合(Aggregation)的区别在哪里。
-
你是如何理解干净的代码(Clean Code)与技术负债(Technical Debt)的。
-
描述下常用的重构技巧。
-
阐述下 SOLID 原则。
-
其他的譬如 KISS,DRY,YAGNI 等原则又是什么含义。
-
什么是设计模式(Design Patterns)?你知道哪些设计模式?
-
你有了解过存在哪些反模式(Anti-Patterns)吗?
-
你会如何设计登陆舰/数学表达式计算程序/一条龙?
-
你知道哪些基本的排序算法,它们的计算复杂度如何?在给定数据的情况下你会倾向于使用哪种算法呢?
-
尝试编写如下代码:
-
计算指定数字的阶乘
-
开发 Fizz Buzz 小游戏
-
倒转句子中的单词
-
回文字符串检