- 网页设计
- 整站网页设计
- 网站模板设计
- 网站开发
- 综合门户网开发
- 企业网站开发
- 电子商务网站开发
- 资讯网站开发
- 团购网站开发
- 手机网站开发
- 宣传展示网站
- 网站功能开发
- 网站特效制作
- 应用软件开发
- 手机应用软件
- 计算机应用软件
- 软件美工
- 程序修改
- 仿网站开发
- 脚本插件
- 软件测试
- 网站改版
- 企业办公系统
- 软件汉化
- 软件界面皮肤
- 企业办公系统界面
- 应用移植
- Android开发
- IOS开发
- 应用汉化
- 安卓系统定制
- 网店装修
码农翻身用故事给技术加点料好玩又有趣的编程知识 计算机程序员软件编程项目开发大全 企业级应用架构师设计开发图书籍电子工业出
- 产品名称:码农翻身
- 品牌:电子工业出版社
- 书名:码农翻身
- 作者:刘欣
- 定价:69.00元
- 书名:码农翻身
- 是否是套装:否
- 出版社名称:电子工业出版社
基本信息 |
图书名称: | 码农翻身 用故事给技术加点料 |
作者: | 刘欣 |
定价: | (咨询特价) |
ISBN号: | (咨询特价) |
出版社: | 电子工业出版社 |
开本: | 16 |
装帧: | 平装 |
编辑推荐 |
√ 书中把计算机素和行为用拟人手法编成一个个精彩纷呈的故事,绘声绘色且深入浅出地演绎晦涩枯燥的编程知识。 √ 编程初学者可以津津有味地学习,老手也能饶有兴致地查漏补缺。 √ 学习YX的架构师是如何思考、如何抽象、如何成长的,从操作系统、Java语言到Web技术,每个主题都深入浅出。 |
内容介绍 |
《码农翻身》用故事的方式讲解了软件编程的若干重要领域,侧重于基础性、原理性的知识。 《码农翻身》分为6章。 第1章讲述计算机的基础知识; 第2章侧重讲解Java的基础知识; 第3章偏重Web后端编程; 第4章讲解代码管理的本质; 第5章讲述了JavaScript的历史、Node.js的原理、程序的链接、命令式和声明式编程的区别,以及作者十多年来使用各种编程语言的感受; 第6章是作者的经验总结和心得体会,包括职场发展的注意事项、作为架构师的感想、写作的好处等。 《码农翻身》不是一本编程的入门书,对编程一窍不通的“纯小白”可能看不明白,可能会失望。但稍有编程基础的读者读起来会非常畅快,读后会有一种“原来如此”的感觉。 |
作者介绍 |
刘欣(@码农翻身): 15年的软件行业从业经验,前IBM系统架构师,擅长企业应用架构和设计,领导过多个企业级应用架构设计和开发工作 |
目录 |
第1章 计算机的SJ你不懂 1 1.1 我是一个线程 1 初生牛犊 1 渐入佳境 4 虎口脱险 5 江湖再见 8 1.2 TCP/IP之大明内阁 9 1.3 TCP/IP之大明邮差 12 1.4 CPU阿甘 17 启动 17 运行 18 新装备:缓存 19 自我提升:流水线 20 1.5 我是一个进程 21 批处理系统 22 多道程序 22 地址重定位 24 分时系统 26 分块装入内存 27 虚拟内存:分页 28 分段 分页 30 程序的装载 31 线程 35 1.6 我是一块硬盘 36 内部结构 37 文件 38 文件的存放 39 管理空闲块 44 文件系统 45 1.7 我是一个键盘 46 二等公民 46 总线和端口 47 轮询(程序式I/O) 48 中断 49 DMA 50 1.8 数据库的奇妙之旅 51 无纸化办公 51 数据的冗余和不一致 52 李氏查询 52 并发访问 54 原子性问题 56 AQ 58 1.9 搞清楚Socket 59 (咨询特价) 从1加到100:一道简单的数学题挑战一下你的大脑 64 CPU和内存 64 从1加到(咨询特价) 热身 65 正式出发 65 (咨询特价) 一个翻译家族的发家史 68 机器语言 68 汇编语言 69 高级语言 70 (咨询特价) 编程SJ的那把锁 74 共享变量惹的祸 74 争抢吧,线程 75 改进 76 信号量 77 (咨询特价) 绕不开的加法器 81 (咨询特价) 递归那点事儿 85
第2章 Java帝国 91 2.1 Java:一个帝国的诞生 91 C语言帝国的统治 91 反抗 92 一鸣惊人 93 开拓疆土 93 帝国的诞生 94 2.2 我是一个Java Class 96 陌生 96 刺探信息 97 初识虚拟机 98 快乐假期 102 真相大白 103 2.3 持久化:Java帝国反击战 104 断电的威胁 104 数据库联合酋长国 105 表面风光的EJB 106 轻量级O/R Mapping框架 106 帝国的反击 107 2.4 JDBC的诞生 108 谈判 108 统一接口 110 面向接口编程 111 简单工厂 112 数据驱动 114 工厂方法 115 2.5 Java帝国之宫廷内斗 119 JDBC大臣 119 密谋 120 两阶段提交 121 JTA 123 塞翁失马,焉知非福 124 基本可用 125 走漏风声 127 宫廷激辩 128 2.6 JSP:一个装配工的没落 131 黑暗岁月 131 服务器端动态页面 132 标签库 134 模板引擎 134 草根搅局 135 2.7 Java 帝国之消息队列 137 张家村的历史 137 拆分 138 新问题 139 消息队列 139 互不兼容的MQ 140 消息队列接口设计 141 配置和代码的分离 143 再次抽象 144 2.8 Java帝国之动态代理 147 深夜奏对 147 明察暗访 149 Java 动态代理 150 2.9 Java注解是怎么成功上位的 153 XML大臣 153 安翰林献计 154 早朝争斗 157 (咨询特价) Java帝国之泛型 159 新王登基 159 C 使者 159 泛型实现 162 泛型方法 163 泛型和继承 164 (咨询特价) 一个ZM的日志系统是怎么设计出来的 166 前言 166 张家村 167 小张的设计 167 正交性 170 Log4j 171 尾声 171 (咨询特价) 序列化:一个老家伙的咸鱼翻身 172 寒冬的蛰伏 172 XML和JSON的挑战 173 新协议的崛起 175 (咨询特价) 加锁还是不加锁,这是一个问题 176 互斥锁 176 要不要加锁 177 CAS的扩展 179 (咨询特价) Spring 的本质 182 问题来源 183 设计模屎模板方法 184 设计模屎装饰者 186 AOP 187 实现AOP 188 对象的创建 189 IoC与DI 191
第3章 浪潮之巅的Web 192 3.1 Web的起源 192 3.2 两个程序的爱情故事 195 好感 195 分离 196 网络 197 Web 198 3.3 一个故事讲完HTTPS 199 总有一种被偷窥的感觉 199 RSA:非对称加密 200 非对称加密 对称加密 202 中间人劫持 202 你到底是谁 203 HTTPS 206 3.4 机房夜话 207 DY夜 207 第二夜 209 第三夜 211 3.5 从密码到token,一个有关授权的故事 215 我把密码献给你 215 token 216 授权码 token 218 后记 220 3.6 后端风云 220 数据库老头儿 220 危机 221 党委扩大会议 221 分家 223 Redis 224 余数算法 227 一致性Hash算法 229 Hash槽 (Hash Slot) 233 故障转移 235 高可用的Nginx 237 高可用的Tomcat 238 数据库的读写分离 240 3.7 我是一个函数 243 3.8 从SOA到微服务 246 3.9 什么是框架 249 (咨询特价) HTTP Server:一个差生的逆袭 252 HTTP Server 1.0 252 HTTP Server 2.0:多进程 253 HTTP Server 3.0:select模型 254 HTTP Server 4.0:epoll模型 255
第4章 代码管理那些事儿 258 4.1 版本管理简史 258 “人肉” 版本管理 258 锁定文件:避免互相覆盖 259 允许冲突:退一步海阔天空 260 分支:多版本并行 261 分布式管理:给程序员放权 262 程序员也爱社交 264 4.2 Build的演进之路 265 手工Build的烦恼 265 自动化Build 267 Java 与 XML 268 消除重复 270 4.3 烂代码传奇 275 4.4 敏捷下的单测试 277 敏捷运动 277 困惑 278 讨论 279 一年以后 280 4.5 再见!Bug 281
第5章 我的编程语言简史 284 5.1 JavaScript :一个草根的逆袭 284 出世 284 成长 286 DY桶金 288 发明JSON 289 人生DF 291 5.2 Node.js:我只需要一个店小二 292 5.3 C老头儿和Java小子的硬盘夜话 295 5.4 编程语言的“爱恨情仇” 300 让人怀疑的C 语言 300 被忘却的 VB & Visual FoxPro 301 蹂躏我的C 302 赖以谋生的Java 303 优雅的Ruby 304 5.5 命令式编程 VS 声明式编程 306 一则小故事 306 命令式编程 306 声明式编程 307
第6章 的精进 309 6.1 凡事B先骑上虎背,和性格内向的程序员聊几句 309 6.2 码农需要知道的“潜规则” 311 的规矩:局部性原理 311 坐飞机的怎么和坐驴车的打交道:缓存 311 抛弃细节:抽象 312 我只想和邻居打交道:分层 312 我怕等不及:异步调用 313 大事化小,小事化了:分而治之 314 6.3 15年编程生涯,一名架构师的总结 314 好奇心 315 养成计算机的思维方式 315 扎实基础,融会贯通 317 要透彻地理解一门技术的本质 317 能写漂亮的代码 318 抽象的能力 319 技术领导力 319 6.4 对自己狠一点,开始写作吧 320 6.5 学习编程的四兄弟 322 摇摆不定的老大 322 “小仓鼠”老二 322 不看书的老三 323 半途而废的老四 323 |
在线试读部分章节 |
我是一个线程 我是一个线程,一出生就被编了一个号——0x3704,然后被领到一间昏暗的屋子里,在这里,我发现了很多和我一模一样的同伴。 我身边的同伴0x6900待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。” 我一脸懵懂:“包裹,什么包裹?” “不要着急,马上你就会明白了,我们这里是不养闲人的。” 果然,没多久,屋子的门开了,一个凶神恶煞的家伙吼道:“0x3704,出来!” 我一出来就被塞了一只沉甸甸的包裹,上面还附带着一张写满了操作步骤的纸。 “快去,把这只包裹处理了。” “去哪儿处理?” “跟着指示走,先到就绪车间。” 果然,地上有指示头,我跟着它来到了一间明亮的大屋子,这里已经有不少线程了,大家都很紧张,好像时刻准备着往前冲。我刚一进来,就听见广播说:“0x3704,进入运行车间。” 我赶紧往前走,身后有很多人议论。 “他太幸运了,刚进入就绪状态就能运行。” “是不是有关系?” “不是,你看人家的优先级多高啊,唉!” 前面就是运行车间,这里简直是太美了,怪不得老线程总是唠叨:“要是能一直待在这里就好了。” 这里空间大,视野好,空气清新,鸟语花香,还有很多从来没见过的人,像服务员一样等着为我服务。他们也都有编号,更重要的是每个人还有一个标签,上面写着:硬盘、数据库、内存、网卡……我现在理解不了他们究竟是做什么的,看看操作步骤吧。 DY埠从包裹中取出参数。 打开包裹,里面有一个HttpRequest 对象,可以取到userName、 password 两个参数。 第二埠执行登录操作。 噢,原来是有人要登录啊。我把userName、password 交给数据库服务员,他拿着数据,慢腾腾地走了。他怎么走得这么慢?不过我是不是正好可以在车间里多待一会儿?反正也没法执行第三步。 就在这时,车间里的广播响了:“0x3704,我是CPU,记住你正在执行的步骤,然后马上带裹离开!”我慢腾腾地开始收拾。 “快点,别的线程马上就要进来了。” 离开这个车间,又来到一间大屋子,这里有很多线程在悠闲地喝茶、打牌。 “哥们儿,你们没事儿干了?” “你是新来的吧,你不知道我在等数据库服务员给我数据啊!据说他们比我们慢好几十万倍,在这里好好歇咨。” “啊?这么慢!我这里有人在登录系统,能等这么长时间吗?” “放心,你没听说过‘人间YT,CPU 一年’吗?我们这里是用纳秒、毫秒计时的,人间等待1 秒,相当于我们的好几天呢,来得及。”干脆睡一会儿吧。不知道过了多久,大喇叭又开始广播了:“0x3704,你的数据来了,快去执行!” 我转身就往CPU 车间跑,却发现这里的门只出不进! 后面传来阵阵哄笑声:“果然是新人,不知道还得去就绪车间等。” 于是我赶紧到就绪车间,这次没有那么幸运了,等了好久才被再次叫进CPU 车间。 在等待的时候,我听见有人小声议论:“听说了吗,Z近有一个线程被Kill 掉了。” “为啥啊?” “这家伙赖在CPU 车间不走,把CPU 利用率一直搞成100%,后来就被Kill 掉了。” “Kill 掉以后弄哪儿去了?” “可能被当作垃圾回收了吧。” 我心里打了一个寒噤,赶紧接着处理,剩下的动作快多了,第二步登录成功。 第三埠构建登录成功后的主页。 这一步有点费时,因为有很多HTML 需要处理,不知道代码是谁写的,处理起来很烦人。 我正在紧张地处理HTML,CPU 又开始叫了: “0x3704,我是CPU,记住你正在执行的步骤,然后马上带裹离开!” “为啥啊?” “每个线程只能在CPU 上运行一段时间,到了时间就得让别人用了。你去就绪车间待着, 等着叫你吧。” 就这样,我在“就绪”“等待”“运行”这三种状态中不知道轮转了多少次,终于按照步骤清单把工作做完了。ZH,我顺利地把包含HTML 的包裹发了回去。至于登录以后干什么事儿,我就不管了。马上就要回到我那昏暗的房间了,真有点舍不得这里。 不过相对于有些线程,我还是幸运的,他们运行完以后就被彻底地销毁了,而我还活着!回到了小黑屋,老线程0x6900 问:“怎么样?DY天有什么感觉?” “我们的SJ规则很复杂,DY,你不知道什么时候会被挑中执行;第二,在执行的过程中随时可能被打断,让出CPU 车间;第三,一旦出现硬盘、数据库这样耗时的操作,也得让出CPU 去等待;第四,数据来了,你也不一定马上执行,还得等着CPU 挑选。” “小伙子理解得不错啊。” “我不明白为什么很多线程执行完任务就死了,而咱们还活着?” “你还不知道?长生不老是我们的特权!我们这里有一个正式的名称,叫作线程池!” …… |