程序之美。

程序之美系列(架构之美、 之美、数据之美) kindle的电子书,分享一下,用kindle软件也可以看,排版还是比价好的 立即下载
程序的美要从两个方面进行品味,一是程序整体的架构之美;一是程序的代码实现之美。

编码之美:
编程就是为解决一个计算机能够解决的问题写出具体的程序实现。
开始,人们总是从发现代码之美开始的,从把代码一股脑的写在main方法里,到把一些有独立意义的代码片断写成不同的方法;从不知道代码重用,到把有重用性的代码抽象出来在不同的地方重用;从类与类之间没有什么组织结构,到开始把程序中的类组织成不同的目录结构,让不同的类担当不同的责任。这个时候才第一次和OO思想沾边。从把类看成程序最大的组织形式,到把程序设计成不同的模块;从不知道接口有何用处,到发现自己离了接口竟然有点不会写程序了。这些是我编程的不同阶段,相信大多数人也都要在不同的阶段走过。代码之美还有很具体的地方,实现同样的功能,有人做不出来,有人用1天写出一个一千行的实现方案,需要运行1s钟解决问题,有人用10天写出一个一万行的实现方案,只要运行0.01s就能解决问题。通常来说,要解决一个问题,人做的工作越多,计算机做的工作就越少;思维越缜密,就越能减少程序出现的bug,同样,代码长度也就越长。一万行的程序不一定比一千行的程序慢。说起代码之美,我想起以前看到的一个小题目:用最短最高效的代码实现一个方法,判断一个32位的int数num是不是2的幂数(既是否存在一个n是的n个2相乘,得到num),存在则返回0,不存在返回非零。

我见过的最牛的实现:
public int count(int num){
    return x&(x-1);
}

代码之美体还现在很多地方,比如说优秀的算法,命名规范、代码格式等等。


架构之美:
好的架构是系统成功的一大半,有了好的架构,实现起来只有好坏之分,基本不存在能不能实现的疑问。对系统进行架构的过程就是对现实世界中的事物和过程进行抽象的过程,抽象的越接近事实的本质,适应性越强,系统的生命力也就越强。作为一个还没毕业的大学生,我不敢说自己对架构一个系统有什么独到的见解。唯一一次像样的架构程序也就是做那个项目,架构总体还算成功,采用插件式设计,这个思想使得我们整个程序各个模块之间的耦合度都很低,几乎完全是面向接口编程的。系统架构这个东西感觉一是要学习理论知识,学习成功案例,多想想如果是自己会怎么办,有机会自己要多实践,理论联系实践是最重要的。同时还要多思考,思考世界,思考事物之间的关系,将它们抽象成计算机可以表示可以处理的模型。
 
系统越小,编码显得越重要;系统越大,架构越显得重要。
但是具体到我现在接收的一个半路项目,其架构是比较好的,完全能够达到应用的实际需要,但是代码实现却做的非常差导致整个项目质量严重缩水,这也是让人很无奈的。
 
阅读优美的代码,体味优美的架构,一种思想的美总能止不住的从心中油然而生,如同醍醐灌顶。
 
程序之美系列(架构之美、安全之美、数据之美) 《架构之美》内容包括:facebook的架构如何建立在以数据为中心的应用生态系统之上。xen的创新架构对操作系统未来的影响。kde项目的社群过程如何让软件的架构从粗略的草图成为漂亮的系统。蔓延的特征如何让gnu emacs获得从未想到过的功能。jikes rvm自优化、自支持的运行时环境背后的魔法... 《安全之美》包含以下内容: 个人信息背后的经济:它的运作方式、犯罪分子之间的关系以及他们攻击猎物的新方法。社交网络、云计算及其他流行的趋势如何帮助或损害在线安全。度量指标、需求收集、设计和法律如何将安全提高到一个新水平。《数据之美》揭示了数据发现可以是多么广泛和美丽!在《数据之美》中,39位业内最佳数据实践者揭秘了他们如何为各种项目开发简单优雅的解决方案,例如火星着陆探测器、Radiohead视频的制作等。 立即下载

相关推荐

程序之美系列 (架构之美、安全之美、数据之美 )三本合集

--架构之美 全球19位顶尖架构师智慧结晶 荣获2009年度引进版优秀图书奖 有志于做出一点东西的程序员和架构师必读! 健壮、优雅、灵活和易维护的软件架构是怎样炼成的? ---数据之美 39位业内最佳数据实践者揭秘如何为各种项目开发简单优雅的解决方案 O’Reilly Media公司创始人兼CEO Tim O’Reilly力荐! 让你发现,数据原来可以是如此的广泛和美丽,令人痴迷。 《安全之美》包括以下内容:个人信息背后的经济:它的运作方式、犯罪分子之间的关系以及他们攻击“猎物”的新方法。社交网络、云计算及其他流行趋势如何帮助或损害在线安全。度量指标、需求收集、设计和法律如何将安全提高到一个新水平。PGP不为人知的真实历史。

程序之美(转自知乎)

因为程序是逻辑的集合,是一种结构化的事物,因此程序的美往往体现了某种秩序。1. 基本的秩序是基础 CS 理论的应用,比如程序中实现了一某种数据结构,针对数据结构的某种算法,这些结构和算法都具备一些固定的性质。你的程序具备了这些性质,就在一定层面上(这里是运行时)具备了秩序。数据结构和算法的秩序,就是你的代码“美”的体现;2. 紧接着就是代码的可约性。也就是你的逻辑是不是可以再化简的,一个等式越化简...

weixin_33727510的博客 231

程序之美系列套装(6册)[epub] BY [美]斯宾耐立思 等

程序之美系列套装(6册)[epub] BY [美]斯宾耐立思 等

程序美感需源于程序实用

美感虽然有着悠久的历史形成过程和非常丰富的定义,但有一条是颠扑不破的–实用性. 在编程中,美感作为一种主观体验,也是一种“快捷方式”,也就是我们常常把一些非常复杂的规则原则融合到一个“更美,更优雅”中来。 但同时,美感作为一种主观体验,一不小心就会走到“不实用”的程度中去,就如同时尚模特的美,很多已经脱离了健康范畴。 所以在程序中,我们在谈“简洁”的时候,也要注意不要破坏其实用性。 比如虽然我们推...

安柏霖的专栏 500

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 528

程序之美

程序员——大有可为的职业   程序员的人力缺口非常大,前端工程师做为一个专门负责整个项目数据和界面呈现的职位此更是感触良多。虽然有时候我们也抱怨好项目太少,但是更多的时候是好项目来了却发现根本没有人去做。招聘广告常年打,面试者寥寥无几,能通过面试的更是沧海一粟。   那好吧,我替大家不平一下,我们不是不想去应聘,而是面试了几家都不成功,是不是你们根本不想招人,就是在炒作啊?就算侥幸成功了,

码农专栏 851

【中软软件测试笔试题】中国软件与技术服务股份有限公司笔试一卷

请分别写出ISO7层架构,并分别说明TCP、UDP协议分别在处于哪一层,以及TCP、 UPD协议有什么区别。 答:7 应用层 6 表示层 5 会话层 4 传输层 3网络层 2 数据链路层 1 物理层 第四层;UDP是面向无连接、不可靠数据传输协议; TCP是面向连接、可靠数据传输协议......

Yanan990830的博客 1817

程序之缘,程序之美,缘来很美

开题:程序之缘,程序之美,缘来很美 作者:肇庆学院-12级软件1班-江嘉宝 简介:描述了一个程序圆和程序的缘分 涉及:Java SE、HTML、CSS、JavaScript、jQuery、SQL、Java EE、Spring、Stuts、Hibernate、Spring MVC、MyBatis、Bootstrap、bsgrid、zTree、ECharts、Android、iOS、PHP、C

江嘉宝の博客 958

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现

3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理...

qq_40013290的博客 881

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 907

NetSuite开发实践-良质之美

近期,在开发同学的一个工作作品中,我感叹到有一种结构美。这种感受是直接的,与《禅与摩托车维修艺术》所说的“良质”一样。无法用言语诉说,但是一眼就可以看出。 这个触动让我想缕缕思路,琢磨一下“程序之美”,以及其下的“匠人精神”,以及再下的“哲学意味”。有点李泽厚先生在《美的历程》中说的由羊大之美,到羊人之美的意思。

NetSuite知识会 612

SAP 中租赁资产的实现需区分经营租赁与融资租赁,核心围绕资产主数据配置、折旧与利息设置、科目分配及业务操作展开

摘要:SAP系统租赁资产管理需区分经营租赁与融资租赁,通过SPRO配置资产主数据、折旧范围、利息计算及科目分配。关键步骤包括:激活折旧范围利息计算(OABZ)、设置租赁资产类别(OAYZ)、维护总账科目(AO90)及创建租赁资产主数据(AS01)。业务操作涵盖资产资本化(ABZON)、折旧利息过账(AFAB)、租金支付(F-53)及终止处理(ABUMN)。核心配置要点在于准确设置租赁类型、利率参数和科目联动,确保系统自动计算折旧与利息并生成正确凭证。

金牌架构师 1073

程序之美---像诗

<br />从事编程工作这么多年,经常会有人问我什么样的程序是好程序,有的甚至把程序给我看,让我给程序提提意见。而我从编程开始就踏上寻觅好程序之路。“路漫漫其修远兮 吾将上下而求索。”这好象正是我心历的写照。可以说追求编写好程序是我不变的目标。<br />  好的程序?好的程序?什么样程序是好的?为什么这样程序是好的?中国人从小就被“好坏”教育。面对任何事物,他们都能给评出好坏来。评出结果出来,无非让复杂事物简单化,让人在第一时间能判别这件事好不好,这件事能不能做,好的就给与支持和赞美,好的就想去做就想做好

pdw_jsp的专栏 721

华为OD机试真题-国际移动用户识别码(IMSI)匹配

华为OD机试双机位C卷 国际移动用户识别码(IMSI)匹配 , 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 国际移动用户识别码(IMSI)匹配

qq_45776114的博客 4927

台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)

*完整源码地址**:[https://github.com/billiards/pcol-core](https://github.com/billiards/pcol-core)(包含详细文档与示例)通过这个项目,我们不仅创建了一个游戏,更构建了一个**可扩展的物理引擎框架**,为网页端复杂物理模拟开辟了新的可能性。**在线体验**:[https://pcol.billiards](https://pcol.billiards)(支持移动端触控操作)clone.velocity.x *= -0.92;

Loving_enjoy的博客 2798

程序之美 存乎于心

我是盛安德科技天津分公司的普通WEB开发人员,本人并没有什么特长,开发语言仅限于PHP和Javascript,同时也不是科班出身,在本次“我的编程之路”活动中现身主要是希望自己的经验能够让刚刚走上程序之路的朋友们多一点借鉴。 程序员——大有可为的职业 程序员的人力缺口非常大,盛安德科技作为一个专门承接外包的公司对此更是感触良多。虽然有时候...

weixin_34248705的博客 238

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

探寻C++经典程序之美

在C++的海洋中,经典程序如同北极星一般闪烁,为前行的航船指引方向,引领着人们走向更深、更广阔的编程领域。在C++的世界里,经典程序如同璀璨的明星,一直散发着夺目的光芒。经典的内存管理程序如《Effective C++》中的单例模式实现,让人们领略到了C++高手的风采。这个经典的单例模式实现,既展示了C++中静态成员变量的使用,又充分体现了对对象生命周期的精准掌控,是C++程序设计中不可或缺的一环。这个简单的程序,代表着编程的开始,也让人们意识到,C++的世界里,一切皆有可能。3. 模板元编程的奇妙世界。

weixin_46969363的博客 763

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

趣味程序之数学之美系列

数学之美系列程序一览如下,点击进入博客文章: I00001 杨辉三角 I00003 贝尔三角形 I00004 贝尔三角形(解法二) I00020 计算卡特兰数函数 I00025 寻找循环数 I00026 计算数根 I00032 约瑟夫环(Joseph problem) I00009 用1生成回文数 I00017 生成9开头的按位递减数 I0001...

weixin_34060299的博客 179

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 【转】外连接&全连接的区别
下一篇: 我昨天写一个图像跟踪的Web Application的过程
DeepNightTwo
博客等级 码龄21年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值