编程的感受~~随时随手更新

  1. 面向对象编程时函数API的设置应尽量减少调用者的工作量。主要表现在参数和返回值的设置。首先,参数的判断能够交给函数自己判断的,应该让函数自己判断。这样一来,NULL或者null值的应用就显示出来其强大的用处了。同时,对于参数不符合规则的场景,通常返回的是null值或者默认构造函数生成的对象。这就显示出默认构造函数的重要性了。面向对象的良好应用应该是尽量减少用户的工作量和学习坡度。 ------------------------------------------------------------------------------------ ~~~{割割割,2014/7/28} 以上为很早之前写的一段话。现在看看感觉有很多幼稚的地方。对于接口的设计,就是对于函数signature已经返回值的设计。这个是毫无疑问的。 1.参数的设置。signature中参数主要体现在数量和类型上。以我个人的看法,参数应该遵循简洁明了的特点。自己的编程经验中是和周董开发shining stars时,周董让我设计一个生成战舰的函数。要输入很多特性值。具体细节我忘了。但是现在回想,应该是典型的函数重载。但是我竟然用了可变函数这一C的特性。。。。 2.参数的判断。在上文中,我说对于参数的判断应该要交给函数自己实现,不要让使用者判断。这句话现在想想一半是废话。调用者在调用的时候,自己就会想好什么时候去调用这个接口。而接口的实现者,毫无义务的要对传入参数的各种情况加以判断并作出处理。是返回NULL值也好,返回默认值也好,都可以。但是,有一点应该补充上去。在C++, Java以及Go这样的有异常机制的。应该及时抛出异常。public static byte[] toByteArray(final HttpEntity entity) throws IOException {
    if (entity == null) {
                throw new IllegalArgumentException("HTTP entity may not be null");
            }
    //上面这段是对参数的判断,遇到异常参数,应该及时抛出。这是一种和调用者交流的机制。调用者可以根据抛出的异常进行代码的处理。这比,判断返回值是否是NULL等方便多了。 InputStream instream
    = entity.getContent(); if (instream == null) { return null; }
    //作为调用者,我们处理返回值。
    try { if (entity.getContentLength() > Integer.MAX_VALUE) { throw new IllegalArgumentException("HTTP entity too large to be buffered in memory");
    }
    int i = (int)entity.getContentLength(); if (i < 0) { i = 4096; } ByteArrayBuffer buffer = new ByteArrayBuffer(i); byte[] tmp = new byte[4096]; int l; while((l = instream.read(tmp)) != -1) { buffer.append(tmp, 0, l); } return buffer.toByteArray(); } finally { instream.close(); } }

     

  2. 坚持写博客。和小郭聊天,问他还在写博客么,他说哪有时间写。小郭是技术大牛,每天都在忙着做老师派给的活。什么东西一弄就会,但是我是个呆头呆脑的人。看的东西多了,脑子里就像浆糊一样。写博客,就算是把书上的原话打一遍,也感觉是一种整理思绪的过程。所以会坚持写下去。虽然现在写的都是很肤浅的东西,但是相信一直写,就会慢慢的提炼。
    我认为现在的博客都是采用css+html的排版。写博客不要在IDE环境下写,在html源码编辑器下面写。遇到不知道怎么用html排版的问题,就去查w3school。这样不知不觉连css+html都学了不少东西。
  3. 使用IDE,要注重养成使用快捷键的习惯。。。因为这些快捷键真的很强大。要敢于尝试更改IDE的环境属性,不断的尝试,才能知道IDE的power。最近使用Eclipse发现Eclipse的功能好强大。也渐渐懂得了命令行编程的方便。面对笨拙的VS,真心喜欢LINUX下面vim写代码的快捷。
posted @ 2014-04-11 01:11  而远之  阅读(273)  评论(0)    收藏  举报