软件开发
反模式
AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis Douban
布朗 translator: 宋锐 publishing house: 人民邮电 2008 - 1
《反模式危机中软件架构和项目的重构》从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题。将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度、架构角度和管理角度三个方面对这些反模式逐一说明,并说明了与特定反模式相关的背景、原因、症状和后果,让读者可以迅速地检验身边的项目是否出现了这些状况,同时也针对每个反模式给出了相应的解决方案。
Python编程快速上手
Automate the Boring Stuff with Python: Practical Programming for Total Beginners Douban
★ 8.9 9 ratings
Al Sweigart translator: 王海鹏 publishing house: 人民邮电出版社 2016 - 7
如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。 本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。
Read
June 13, 2019
基本上是吧Python当纯粹的脚本语言来讲,目的是让懂编程或不懂编程的人都快速的用上Python,目的明确,很好,我喜欢。我读这本书的目的性因为很强,就是想用这本书教会完全没有编程经验的LP把她手头boring的例行事物自动化起来,减轻点负担,达到目的了。对有编程经验的人来说,不推荐用这本书做Python入门书。 @2019-06-13 10:17:04
软件开发
June 26, 2019 Review 实用性极强的Python入门书 - a review of Python编程快速上手
Head First Python(中文版)
Douban
巴里(Barry.P.) translator: 林琪 等 publishing house: 中国电力出版社 2012 - 3
你想过可以通过一本书就学会Python吗?《Head First Python(中文版)》超越枯燥的语法和甩法手册,通过一种独特的方法教你学习这种语言。你会迅速掌握Python的基础知识,然后转向持久存储、异常处理、Web开发、SQLite、数据加工和lGoogle App Engine。你还将学习如何为Android编写移动应用,这都要归功于Python为你赋予的强大能力。本书会提供充分并且完备的学习体验,帮助你成为一名真正的Python程序员。 作者巴里觉得你的时间相当宝贵,不应当过多地花费在与新概念的纠缠之中。通过应用认知科学和学习理论的最新研究成果,《Head First Python(中文版)》可以让你投入一个需要多感官参与的学习体验,这本书采用丰富直观的形式使你的大脑真正开动起来,而不是长篇累牍地说教,让你昏昏欲睡。
Read
May 20, 2019
有编程基础,想成为Python programmer的,这本书入门不算太好,内容太简单了,语法都没讲全。想用python来做点自动化工具的看看这本书还行,但又不如另一本专门讲做自动化工具的书-python编程快速上手。复杂的内容,用head first来讲,浅出一下,还是蛮好,简单的东西,这种风格就有点鸡肋了。另:这本书作为真正的编程小白入门也不太合适,因为里面有些内容又assume读者会sql/html等,目标读者是谁?读完之后能达到什么样的目的?这些基本问题不明确,可以说,这本head first是我看过的所有head first里面最差的一本 @2019-05-20 14:51:49
软件开发
June 11, 2019 Review Head First系列里令人失望的一本 - a review of Head First Python(中文版)
设计模式解析
Design Patterns Explained Douban
Alan Shalloway / James R.Trott translator: 徐言声 publishing house: 人民邮电出版社 2010
本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,随后使用易懂的示例代码阐明了12 个最常用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。 本书适合软件开发专业人士,以及计算机专业、软件工程专业的高校师生阅读,也可作为面向对象分析与设计课程的参考教材。
Read
Jan. 13, 2019
书是好书,模式解释的也非常清晰透彻,只是感觉作者有点过于小聪明,一是认为四人帮的书过时了,而是觉得没有四人帮他们俩也能推理出设计模式来。好吧,很多事情,点破了可能很多人觉得自己也能做到的,可问题是为什么他们怎么就没让自己成为那个break through的人呢?这可不仅仅是运气。总而言之,书是好书,而作者的能力也没达到那种可以开宗立派的程度。软件设计方面,四人帮无疑是模式领域当仁不让的宗师,DDD的开创者Eric Evans也是开领域启动设计一派之先河,Bob大叔的SOLID和Craig Larman的GRASP也广为人知,POSA洋洋洒洒5大卷更是业界景仰之高峰。后生小辈的跟风之作就敢叫板经典,岂有此理? @2019-01-13 13:16:48
软件开发
测试驱动的嵌入式C语言开发
Test Driven Development for Embedded C Douban
James W. Grenning translator: 尹哲 publishing house: 机械工业出版社 2012 - 1
《测试驱动的嵌入式C语言开发》深入介绍如何把测试驱动的开发方法应用于嵌入式C语言开发,第一部分介绍了两个开源的测试框架,通过测试驱动开发方法开发第一个模块:第二部分深入介绍了与系统中其他模块进行交互的代码的测试技术,如测试替身、仿制对象等;第三部分介绍了设计与持续改进代码,如写出更好代码的一些重要原则,建立可测并灵活设计的高级技术,改进已有代码的实践方法一一重构技术,改进遗留代码,以及编写和维护测试的指导原则。《测试驱动的嵌入式C语言开发》的代码几乎全部用C写成,并且可以用于嵌入式的、受约束的开发和执行环境。 《测试驱动的嵌入式C语言开发》是作者多年实践经验的总结,实用性强,适合嵌入式C/C++语言程序员、工程师阅读。
Read
Jan. 13, 2019
准备用单元测试驱动开发来填补从high level design到code之间的环节。很实用的step by step教程,可惜绝版了 @2019-01-13 12:34:14
软件开发
xUnit Test Patterns
Douban
Gerard Meszaros publishing house: Addison-Wesley 2007 - 5
Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testing framework in use today. Agile coach and test automation expert Gerard Meszaros describes 68 proven patterns for making tests easier to write, understand, and maintain. He then shows you how to make them more robust and repeatable--and far more cost-effective. Loaded with information, this book feels like three books in one. The first part is a detailed tutorial on test automation that covers everything from test strategy to in-depth test coding. The second part, a catalog of 18 frequently encountered "test smells," provides trouble-shooting guidelines to help you determine the root cause of problems and the most applicable patterns. The third part contains detailed descriptions of each pattern, including refactoring instructions illustrated by extensive code samples in multiple programming languages. Topics covered include * Writing better tests--and writing them faster * The four phases of automated tests: fixture setup, exercising the system under test, result verification, and fixture teardown * Improving test coverage by isolating software from its environment using Test Stubs and Mock Objects * Designing software for greater testability * Using test "smells" (including code smells, behavior smells, and project smells) to spot problems and know when and how to eliminate them * Refactoring tests for greater simplicity, robustness, and execution speed This book will benefit developers, managers, and testers working with any agile or conventional development process, whether doing test-driven development or writing the tests last. While the patterns and smells are especially applicable to all members of the xUnit family, they also apply to next-generation behavior-driven development frameworks such as RSpec and JBehave and to other kinds of test automation tools, including recorded test tools and data-driven test tools such as Fit and FitNesse. Visual Summary of the Pattern Language Foreword Preface Acknowledgments Introduction Refactoring a Test PART I: The Narratives Chapter 1 A Brief Tour Chapter 2 Test Smells Chapter 3 Goals of Test Automation Chapter 4 Philosophy of Test Automation Chapter 5 Principles of Test Automation Chapter 6 Test Automation Strategy Chapter 7 xUnit Basics Chapter 8 Transient Fixture Management Chapter 9 Persistent Fixture Management Chapter 10 Result Verification Chapter 11 Using Test Doubles Chapter 12 Organizing Our Tests Chapter 13 Testing with Databases Chapter 14 A Roadmap to Effective Test Automation PART II: The Test Smells Chapter 15 Code Smells Chapter 16 Behavior Smells Chapter 17 Project Smells PART III: The Patterns Chapter 18 Test Strategy Patterns Chapter 19 xUnit Basics Patterns Chapter 20 Fixture Setup Patterns Chapter 21 Result Verification Patterns Chapter 22 Fixture Teardown Patterns Chapter 23 Test Double Patterns Chapter 24 Test Organization Patterns Chapter 25 Database Patterns Chapter 26 Design-for-Testability Patterns Chapter 27 Value Patterns PART IV: Appendixes Appendix A Test Refactorings Appendix B xUnit Terminology Appendix C xUnit Family Members Appendix D Tools Appendix E Goals and Principles Appendix F Smells, Aliases, and Causes Appendix G Patterns, Aliases, and Variations Glossary References Index
Working Effectively with Legacy Code
Google Books Douban Goodreads
Michael Feathers publishing house: Prentice Hall 2004 - 10
Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes. © Copyright Pearson Education. All rights reserved.
领域驱动设计
Domain-Driven Design: Tackling Complexity in the Heart of Software Douban
★ 8.0 6 ratings
[美] Eric Evans translator: 赵俐 / 盛海艳 … publishing house: 人民邮电出版社 2016 - 6
本书是领域驱动设计方面的经典之作,修订版更是对之前出版的中文版进行了全面的修订和完善。 全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计新实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。
Reading
July 23, 2018
感觉比那本标榜“程序员必读”的架构书要好很多,讲得重点是怎么做 @2018-07-23 12:51:45
软件开发
程序员必读之软件架构
Software Architecture for Developers Douban
[英] Simon Brown translator: 邓 钢 publishing house: 人民邮电出版社 2014
通常,人们对软件架构师持两种错误的看法。有人认为软件架构师是一种高高在上的职位;有人认为软件架构师完全不懂开发,只是会画条条框框的指挥家。本书将打破这些传统的认知,模糊软件开发和架构在流程中的界限,进而为软件架构正名。本书是一本强调实践、注重实效、轻量级、面向开发者的软件架构指南。
Read
July 15, 2018
架构入门书,书大概是直接由PPT改过来的,薄薄两百页有68章,每章一到两页,仅仅介绍了什么是架构,架构包含什么内容,并没有讲怎么从需求分析得到软件架构这个最有技术含量的话题,大概书的目的就是说服程序员,架构很有必要,架构师也很有必要。另外书里提到不要去重新发明轮子,自己又提出个C4,要架构师自己去定义标记法,UML都定义好了,用就是了,不会用学就是了,这本书试图向那些不愿意学习UML的架构师程序员介绍一个简洁方法C4,其实,对于不爱学习不愿学习的人,介绍啥都是没用的,有些徒劳,还冠以程序员必读,实在是名不副实,要想在架构领域有所深入的话,还得看看专业领域的书,需求分析,领域建模,模式系统... @2018-07-15 23:28:35
软件开发
July 16, 2018 Review 软件架构的培训提纲 - a review of 程序员必读之软件架构
Clean Architecture
Douban Goodreads Skybridge
[美国] Robert C·Martin publishing house: Prentice Hall 2017 - 9
Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them. Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face—the ones that will make or break your projects. Learn what software architects need to achieve—and core disciplines and practices for achieving it Master essential software design principles for addressing function, component separation, and data management See how programming paradigms impose discipline by restricting what developers can do Understand what’s critically important and what’s merely a “detail” Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications Define appropriate boundaries and layers, and organize components and services See why designs and architectures go wrong, and how to prevent (or fix) these failures Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager—and for every programmer who must execute someone else’s designs. Register your product at informit.com/register for convenient access to downloads, updates, and/or corrections as they become available.
The Clean Coder
Douban Goodreads
[美国] Robert C·Martin publishing house: Prentice Hall 2011 - 5
The Much-Anticipated Follow-Up to “Uncle Bob’s” Highly Praised Clean Code Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice—about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act. Readers will learn What it means to behave as a true software craftsman How to deal with conflict, tight schedules, and unreasonable managers How to get into the flow of coding, and get past writer’s block How to handle unrelenting pressure and avoid burnout How to combine enduring attitudes with new development paradigms How to manage your time, and avoid blind alleys, marshes, bogs, and swamps How to foster environments where programmers and teams can thrive When to say “No”—and how to say it When to say “Yes”—and what yes really means Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn’t written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them—and earn the pride and fulfillment that they alone possess.
Reading
June 30, 2018
信了里面的话,程序员要学会说不,刚想展示一下一个职业程序员的专业素养,跟老板说不,立马被痛骂一顿,吓得赶紧把书扔掉。冷静后捡起来再翻翻,然后就看到这本书最精华的一段话,看这本书前,先精通面向对象的分析与设计,设计模式,领域建模,软件架构...好吧,明白了,说不或是不说不是重点,重点在于先精通了那些个软件开发的方方面面的硬技术之后,再看看这些软技能 @2018-06-30 18:03:57
软件开发
Head First Agile
Douban
Andrew Stellman / Jennifer Greene publishing house: O'Reilly Media 2017 - 9
Read
June 30, 2018
ACP的参考书目有十几本,根本不可能短时间内看完,我只看了这一本,轻轻松松过ACP。Chunk of information的理念很好 @2018-06-30 17:54:05
软件开发
深入浅出面向对象分析与设计
Douban
Brett D.McLaughlin / Gary Pollice … publishing house: 东南大学出版社 2007 - 6
你是否早已对市面上那些只有在成为专家以后,读起来才有感觉的 OOA&D 书籍感到厌倦?你可能早就听说过 OOA&D 书籍能帮助你写出伟大的软件 — 让老板高兴、客户满意的软件。. 但如何办到呢? 《深入浅出面向对象分析和设计》将告诉你如何分析、设计以及撰写真正面向对象的软件:容易重利用、好维护、可扩展的软件;不再使你心碎的软件;让你增添新功能而不会破坏旧机制的软件。在本书中,你将学到: ·使用诸如封装(encapsulation)与委派(delegation)的 OO 原则建立灵活的应用程序。 ·使用开闭原则(Open-Closed Principle)与单一责任原则(Single-Responsibility Principle)提升程序的重利用性。 ·学习如何将 OO 原则、设计模式及各种开发方法,通通整合到 OOA&D 项目的生命周期里。 ·运用 UML、用例及用例图来确保所有利害关系人都能清楚地进行沟通,协助你交付正确的软件,达到每个人的要求。...
Read
June 30, 2018
介绍了一个基本的面向对象的流程(需求分析,用例,领域分析,架构,模式,设计与实现)和相关的面向对象的工具(用例图,用例,文本分析,模式,设计原则),设计内容挺多,对于快速建立面向对象分析与设计的概念和系统还是很有好处的,想深入的话,还得看相关领域的专著。印象深刻的几点:1)、架构=风险=3Q,2)、textual analysis3),3)、编写用例,main path(happy path)& alternative path,4)design life cycle @2018-06-30 16:30:52
软件开发
设计模式
Design Patterns: Elements of Reusable Object-Oriented Software Douban
★ 9.1 13 ratings
[美] Erich Gamma / Richard Helm … translator: 李英军 / 马晓星 … publishing house: 机械工业出版社 2000 - 9
这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。 书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。
Reading
March 24, 2018
翻译太糟糕了,幸好买到一本影印版,有人说内容过时,可能有些例子有点过时,模式的思维一时半会儿过不了时,这就是经典的魅力 @2018-03-24 21:07:52
软件开发
Head First 设计模式(中文版)
Douban
★ 9.4 24 ratings
Elisabeth Freeman / / Eric Freeman … translator: O'Reilly Taiwan公司 publishing house: 中国电力出版社 2007 - 9
《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个○○原则(Principle)。千万不要轻视这些○○原则,因为每个设计模式背后都包含了几个○○原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到○○原则,以方便判断取舍。可以这么说:○○原则是我们的目标,而设计模式是我们的做法。
敏捷软件开发
Agile Software Development: Principles, Patterns, and Practices Douban
★ 9.7 7 ratings
[美国] Robert C·Martin translator: 邓辉 publishing house: 清华大学出版社 2003 - 9
在本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。
Reading
July 13, 2017
全面了解敏捷设计原则,一小章,一天花半小时到一小时,很合适。因为做嵌入式软件开发,平常不用Java,书里大段的Java例子,读起来稍稍有点不适感,当跟平常工作中的软件设计实例相结合,互相印证,也能领会Bob大叔的意思,还好蛮有不亦悦乎的成就感的 @2017-07-13 13:58:33
软件开发
大象:Thinking in UML(第2版)
Douban
谭云杰 publishing house: 中国水利水电出版社 2012 - 3
大象:Thinking in UML(第二版),ISBN:9787508492346,作者:谭云杰 著
Reading
May 14, 2017
前几张的UML讲得很系统,深入谈不上,浅出还是有的,可以看得出来作者的深厚功力。后面跟实践相关的部分,因为行业差异,对我来说比较无趣 @2017-05-14 11:26:10
软件开发