思想

(转载)Bruce Eckel:编程生涯

放肆的年华 提交于 2020-11-23 09:02:43
(转载)Bruce Eckel:编程生涯 作者 Bruce Eckel 是编程界的大牛,著有大名鼎鼎的《Thinking in C++》和《Thinking in Java》。 本文是他对程序员(尤其是新手)的忠告。 大家总是问一个错误的问题:“我应该学习C++还是Java?”在本文中,我将告诉大伙儿:对于选择编程生涯真正需要关注的是哪些问题。 请注意,这篇文章的目标读者并不是那些已经做出自己选择的人。(对于这些人而言)你会继续自己的编程生涯,而不管别人会怎么说。因为它已经渗透到你的血液中,你已经无法摆脱。你已经知道答案:C++、Java、Shell脚本、Python、还有其它一大堆的语言和技术,你都理所当然地会去学习。甚至有可能你才仅仅14岁,就已经知道好几种不同的语言。 问我这样的问题的人可能来自其他行业,或者来自诸如Web开发之类的领域。他们知道HTML是一种类编程语言,而且想尝试构建某些更大型的应用。但我特别希望,当你在问这个问题时,你已经意识到了想要在计算机领域取得成功,你需要掌握自学能力,而且永不停息。 在这个领域做得越多,我越觉得软件开发比任何行业都更接近于写作。 我们从来不知道是什么造就了优秀的作者,我们只知道什么时候我们会喜欢某个人的文字。编程不是一种工程,仅需要把东西从入口倒进去,然后再转动手柄。把软件开发看成确定性的,是一个诱人的想法。因为这个想法

思想:学习YAML语法(12)

ぃ、小莉子 提交于 2020-01-07 07:56:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 思想:学习YAML语法(12) 前面说过文档可以符合YAML格式,所以访问了 http://yaml.org/spec/1.0/ ,发现其实YAML语法还是挺丰富的,并不是那么简单的,要规范了要实现所有的特性还是有一定学习量的。那么我暂且用到其中的一些简单的语法吧。 yaml不如序列化、xml或者json来得方便,主要原因是PHP里没有内置的yaml的解析函数,而像ini这样的都有。幸好我们不用PHP程序来解析yaml,我们只是把它当成文档的一个种格式吧,不要求语法完全正确。我们利用的只是yaml的可读性这个大优点。 yaml的语法这里不介绍,大家自己看文档,不建议完全搞懂yaml的语法,只要能写常用的就行,目的就是为了写清楚文档。 2012.1.11 来源: oschina 链接: https://my.oschina.net/u/100593/blog/38944

思想:脚手架模块的开发过程(13)

假装没事ソ 提交于 2019-12-06 17:06:46
思想:脚手架模块的开发过程(13) 从简单原则出发,就会发现程序员很希望能生成一个框架,只需要往里面填写必须要的代码就可以了。CoreMVC虽然是属于PHP里很简单的框架了,但每个模块还需要还是需要拷贝,所以写一个简单的脚手架程序还是很有用处的。 通过翻译软件我们知道脚手架的英文是scaffold,我们就用这个名字作为模块的名字。CoreMVC建议所有的命名都小写,包括文件名、类名、方法名、变量名、常量名、表名、字段名等等,这个建议也是出于简单的原则,并且避开了linux下文件名区分大小写的问题,由于PHP变量前面都带有$符号,所以变量和常量通常也不会混淆。 模块名字叫scaffold,中文名叫脚手架,文件名叫scaffold.php,类名叫scaffold,脚手架程序是辅助开发的,出于简单的原则不需要数据库操作。需求说明和分析文档则放在scaffold.txt文本文件里,最终的模块打包后的文件名是scaffold.zip,所有代码都使用UTF-8编码。 脚手架模块放在 http://code.google.com/p/coreapp/ 里,根据以往的惯例在svn里要建一个scaffold目录,并且有0和1两个子目录,0是纯粹的脚手架程序以后用来打包的,1是带有核心文件可用来执行的,当然根据不同的版本或功能,还会增加2和3之类的目录。脚手架程序可通过 http://coremvc

思想:gzcompress和gzdeflate的区别(15)

徘徊边缘 提交于 2019-12-05 23:50:45
思想:gzcompress和gzdeflate的区别(15) 昨天写了一个ZIP打包的代码片段,但今天测试有问题,给core.php打包并且有其他程序的时候解压时就会有错。虽然这个问题还没有解决,但对压缩这块有了更多的了解。昨天我仿造PHPZip类写了如下一段代码: $zdata = gzcompress($data); $c_len = strlen($zdata); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug 但我一直不解其意,为什么要处理一下$zdata,看了后面的注释fix crc bug也就信以为真了。但今天看了PclZip的类,代码如下: // ----- Compress the content $v_content = @gzdeflate($v_content); // ----- Set header parameters $p_header['compressed_size'] = strlen($v_content); $p_header['compression'] = 8; 这里并没有fix crc bug。看了 http://cn.php.net/gzdeflate 的评论后才对这两个函数差别有了一定的了解。 一

思想:准备自己写ZIP打包程序(14)

限于喜欢 提交于 2019-12-05 23:50:34
思想:准备自己写ZIP打包程序(14) 脚手架模块(scaffold)已经出第一版了,但因为SAE不支持zip类和函数,所以scaffold只输出模块的源代码,没有输出压缩包。在网上找了一些PHP的ZIP模块,包括PHPZip、PclZip等等,这些包做得都不错,但为了一个模块搭上一个包,感觉并不太好。所以最后决定自己写一个ZIP打包的代码片段,可以拷到模块里用。 自己写就可以提出一些特定的需求,比如边打包边输出,而不是形成整个ZIP包以后再输出,这样做的好处是不用生成临时文件,特别像SAE这样的不能在系统临时目录里写文件得加上特别的处理,现在直接输出了就好办多了。看了一下ZIP生成的代码,感觉这个方案可以实现。另一个需求是尽可能写成一个方法,这样做为代码片段能很好的嵌入到类当中去。 2012.1.12 来源: oschina 链接: https://my.oschina.net/u/100593/blog/39022

Hasor JDBC 的难关,嵌套事务处理思路

拜拜、爱过 提交于 2019-11-27 05:51:39
本文 存属提醒我自己不要忘记的事情。也是向大家展示 Hasor 对于 JDBC 方面即将的又一个重大的进步。目前该方案还在实施中。 前段时间闲着没事分析了下 Spring JDBC ,觉得 Spring JDBC 的设计实在是太绝了,于是就拷贝了 Spring JDBC 的关键接口,然后开始了迁移工作,最后 Hasor - JDBC 问世。 可是 Hasor JDBC 至今仍有一个重大问题没有搞定,那就是事务控制。 虽然可以通过暴露 Connection 简单的加装一个 Aop 拦截器在配合 @Tar... 注解可以完成任务。但是我觉得我有点完美主义了。最近脑袋里一直都是 Spring 那套事务控制体系,我有种冲动在 Hasor 中重新实现这一套事务控制体系。 简介一下 Spring 事务方面的内容,Spring 对于事务方面支持 7种事务传播属性。我用这个接口表示它们: /** * 事务传播属性 * @version : 2013-10-30 * @author 赵永春(zyc@hasor.net) */ public enum TransactionBehavior { /** * 加入已有事务 * <p><i><b>释意</b></i>:尝试加入已经存在的事务中,如果没有则开启一个新的事务。*/ PROPAGATION_REQUIRED, /** * 独立事务 * <p><i

Hasor 同 Spring OSGi 的比较及设计思想

核能气质少年 提交于 2019-11-26 15:11:30
这篇是承接《 轻量级 Java 开发框架 设计 》系列Blog文的后续文章,本文将通过设计思想,实现方式上对比 Hasor Spring OSGi 三者。 在开启本文之前我想用最简短的一段话介绍一下 Hasor 。 Hasor 它是一个 Java 应用开发框架,可以说任何类型 Java 项目都可以使用 Hasor 进行开发。 它的设计思想是通过为 Guice 构建了一个 Context 环境,并且配备了一套完善的插件扩展接口。剩下的所有功能都是由插件完成。 很多朋友当看完上面这段介绍之后,脑海里便浮出 OSGi。 当 Hasor 第一次登台 OSC 是通过一篇有关模块化开发的文章开始,在一开始便有人将 Hasor 与 OSGi 进行了对比。于是也有人觉得 Hasor 绝不会是轻量级的。 况且 OSGi 是企业级模块化标准之一,而恰恰 Hasor 的首次亮相也是通过模块化概念进行阐述。这也难怪 Hasor 从一开始就和 OSGi 有着解不开的关系。 直到我加入一个小组讨论中才发现,将 Hasor 看作是 OSGi 翻版的人并不是少数。虽然我已经极力的介绍过它的架构和一些功能设计。但是很多朋友依然还认为 Hasor 和 OSGi 比较相似。 在设计 Hasor 之前我也研究过 OSGi ,其实从本质上 Hasor 和 OSGi 是根本不同的两个东西。 我个人觉得,Hasor