隨筆-12  評論-0  文章-1  trackbacks-0
            2012年2月27日
          the super keyword in java generic programming is used to declare a template of a specific type. e.g.
          List<? super MyClass> list = new LinkedList<AnyTypeDerivedByMyClass>();
          posted @ 2012-12-31 15:35 Sam Zheng 閱讀(244) | 評論 (0)編輯 收藏
          int (*test(char *(*)(void)) (int); declares a function named "test" which accepts a pointer to a function accepting no parameter and returning a char pointer, the function "test" returns a pointer to a function which accepts a integer parameter and returns a integer.
          Note: a declaration declares either a variable(pointer) or function(pointer), if its name is followed by left parentheses, it is a function, otherwise it is a variable(pointer).
          posted @ 2012-09-20 14:38 Sam Zheng 閱讀(128) | 評論 (0)編輯 收藏
          if you don't feel comfortable with your code, it's time to refactor/re-think about it.
          posted @ 2012-08-31 11:36 Sam Zheng 閱讀(160) | 評論 (0)編輯 收藏
          don't get trapped when reading source code of a complex module, first figure out what the module does/its main functionality and its interfaces, once you get into details, you cannot see the module as a whole and forget its main functionality, if you recognize you are trapped in details, try to come out and focus on interfaces, top->down->top->down
          posted @ 2012-08-15 16:07 Sam Zheng 閱讀(155) | 評論 (0)編輯 收藏
          The crucial part in design/programming, is to break down complex things, anything should be easy when broken down to manageable pieces, and, only when broken down, can it be easy. when doing so, the most important thing is to think about the granularity and the relationship between every pieces/modules, again, reasonability.
          posted @ 2012-04-18 12:10 Sam Zheng 閱讀(145) | 評論 (0)編輯 收藏
          when analyzing/programming, think about reasonability against requirements
          posted @ 2012-04-17 12:55 Sam Zheng 閱讀(314) | 評論 (0)編輯 收藏
          1. what does the program/module/class/method do?
          2. what is its input, if any?
          3. what is its output, if any?
          for a class, understanding its lifecycle is crucial:
          1. how is it created? by who? from a factory? what are the parameters required to create it?
          2. does it have any enforced lifecycle methods? e.g. initialize, dispose..., who is responsible to call these methods, in which order?
          3. what it can do at each stage of its lifecycle?
          4. who is going to use it/what is its client?

          posted @ 2012-03-09 10:52 Sam Zheng 閱讀(237) | 評論 (0)編輯 收藏
          An interface or a class should only do things that it knows, never do things it is not sure about. to define the responsibility of an interface/class clearly and precisely is critical.
          posted @ 2012-02-27 14:12 Sam Zheng 閱讀(170) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 石狮市| 西吉县| 宜黄县| 闸北区| 民丰县| 翼城县| 调兵山市| 郧西县| 西林县| 吉隆县| 抚州市| 永修县| 苏尼特左旗| 武威市| 绍兴县| 乌兰浩特市| 郎溪县| 延安市| 正宁县| 马尔康县| 凉城县| 甘肃省| 苏州市| 肥城市| 都兰县| 南木林县| 托里县| 交口县| 永川市| 南陵县| 固始县| 铜鼓县| 道真| 资兴市| 德化县| 波密县| 昔阳县| 上犹县| 辛集市| 重庆市| 陕西省|