《黑客与画家》读书笔记

《Hackers and Painters》,我第一次花钱买的电子书。

作者paul Graham,曾想成为画家,创业开发出让用户通过浏览器搭建网店的软件被雅虎收购,其写在个人网站上的关于技术和创业的一系列思考结集出版,就是这本书。后来他办创业训练营,被誉为“创业教父”。

本书中,“黑客”取其本意,指最优秀的程序员,而不是入侵计算机系统的人。

1 第一章关于少年学校教育生活的论述最为精彩,以至于我决定将本书收藏,未来给儿子看。
学校,监狱,上流社会的女士午餐会都是封闭的环境,容易发生无聊,残忍和野蛮的行为。应让学生们尽早地理解和进入真实的成人世界。

2 编程是科学,工程还是艺术?作者认为优秀程序员编程和画家作画一样,都是艺术创作。软件只是表达的工具。

3 小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩子脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。
如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。这样好处是会有工作上的创新,以及“不被未来的人嘲笑”。

4 公民自由是国家富强的原因,而不是结果。

5 使用互联网软件而非客户端是趋势,与现在的云服务一致。如果你想把钱藏在安全的地方,请问你是选择放在家中床垫下面,还是放在银行?这个比喻很适用

6 把创业想象成一个压缩过程,你不再是低强度地工作四十年,而是以极限强度工作四年.你努力30 倍,最后得到的回报在现实中并不是30 倍,而是0 到1000 倍之间的一个随机数。假定所有创业者都努力30 倍,最后他们得到的总体平均回报是30 倍,但中位数却是0。(,由于存在个别极其成功的创业者,所以回报的平均值被拉到了30倍,但是大多数创业者其实都以失败告终,所以中位数是0)

7把品味说成个人的偏好可以有效地杜绝争论,防止人们争执哪一种品味更好,作者认为好的设计的品味是人们共同认可的。优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力。

8 静态类型语言与动态类型语言之争。在静态类型语言中,写代码时必须知道每个变量的类型。而在动态类型语言中,随便什么时候,你都可以把变量设为任意类型的值。
静态类型语言的拥护者认为这样可以防止bug,并且帮助编译器生成更快的代码(这两点理由都成立)。动态类型语言的拥护者认为静态类型对程序构成了限制(这点理由也成立)

9 面向对象编程。比如计算二维图形面积。一种解决方法是用一整块的代码判断遇到的是什么图形,然后再用相应的公式计算面积。面向对象编程的方法是写出两个类,一个是圆形类,另一个是正方形类,然后每个类里面用一小块代码(叫做方法)计算该类图形的面积。求面积的时候问要用哪一个类,然后再使用相应的方法得出最后答案。计算圆面积和正方形面积的代码可能分散在不同的文件中。
面向对象编程的优点在于,如果需要增加计算另一种图形的面积,比如三角形,你只需要再另外增加一块相应的代码就可以了,甚至可以不修改程序的其他部分。但是,批评者会反驳说,这种方法的缺点是,由于增加代码不用考虑其他部分,结果往往导致写出性能不佳甚至有副作用的代码,就好比造房子不考虑已经完成的部分一样。

10 思考一百年后的编程趋势,作者推崇lisp语言

11 坚持和耐心 人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 HttpServletRequestWrapper 是 Java Servlet API 中的一个工具类,位于 javax.servlet.http 包中,用于对 HttpServletRequest 对象进行封装,从而在 Web 应用中实现对 HTTP 请求的拦截、修改或增强等功能。通过继承该类并覆盖相关方法,开发者可以轻松地自定义请求处理逻辑,例如修改请求参数、添加请求头、记录日志等。 参数过滤:在请求到达处理器之前,可以对请求参数进行检查或修改,例如去除 URL 编码、过滤敏感信息或进行安全检查。 请求头操作:可以修改或添加请求头,比如设置自定义的 Content-Type 或添加认证信息。 请求属性扩展:在原始请求的基础上添加自定义属性,供后续处理使用。 日志记录:在处理请求前记录请求信息,如 URL、参数、请求头等,便于调试和监控。 跨域支持:通过添加 CORS 相关的响应头,允许来自不同源的请求。 HttpServletRequestWrapper 通过继承 HttpServletRequest 接口并重写其方法来实现功能。开发者可以在重写的方法中添加自定义逻辑,例如在获取参数时进行过滤,或在读取请求体时进行解密。当调用这些方法时,实际上是调用了包装器中的方法,从而实现了对原始请求的修改或增强。 以下是一个简单的示例,展示如何创建一个用于过滤请求参数的包装器: 在 doFilter 方法中,可以使用 CustomRequestWrapper 包装原始请求: 这样,每当调用 getParameterValues 方法时,都会先经过自定义的过滤逻辑。 HttpServletRequestWrapper 是 Java Web 开发中一个强大的工具,它提供了灵活的扩展性,允许开发者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值