您好,欢迎光临有路网!
代码大全(第二版)英文版
QQ咨询:

代码大全(第二版)英文版

  • 作者:(美)迈克康奈尔著
  • 出版社:电子工业出版社
  • ISBN:9787121033629
  • 出版日期:2006年12月01日
  • 页数:914
  • 定价:¥148.00
  • 分享
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    《代码大全(第2版)》是**IT畅销书作者、IEEE Software杂志前主编、具有20年编程与项目管理经验的Steve McConnell十余年前的经典著作的全新演绎:第2版做了全面的更新,增加了很多与时俱进的内容,包括对新语言、新的开发过程与方法论的讨论,等等。这是一本百科全书式的软件构建手册,涵盖了软件构建活动的方方面面,尤其强调提高软件质量的种种实践方法。
    作者特别注重源代码的可读性,详细讨论了类和函数命名、变量命名、数据类型和控制结构、代码布局等编程的*基本要素,也讨论了防御式编程、表驱动法、协同构建、***测试、性能优化等有效开发实践,这些都服务于软件的首要技术使命:管理复杂度。为了培养程序员编写高质量代码的习惯,书中展示了大量高质量代码示例(以及用作对比的低质量代码),提高软件质量是降低开发成本的重要途径。除此之外,本书归纳总结了来自专家的经验、业界研究以及学术成果,列举了大量软件开发领域的真实案例与统计数据,提高本书的说服力。
    本书中所论述的技术不仅填补了初级与**编程实践之间的空白,而且也为程序员们提供了一个有关软件开发技术的信息来源。本书对经验丰富的程序员、技
    目录
    Preface
    Acknowledgments
    ListofChecklists
    ListofTables
    ListofFigures
    PartI LayingtheFoundation
    1 WelcometoSoftwareConstruction
    1.1 WhatIsSoftwareConstruction?
    1.2 WhyIsSoftwareConstructionImportant?
    1.3 HowtoReadThisBook
    2 MetaphorsforaRicherUnderstandingofSoftwareDevelopment
    2.1 TheImportanceofMetaphors
    2.2 HowtoUseSoftwareMetaphors
    2.3 CommonSoftwareMetaphors
    3 MeasureTwice,CutOnce:UpstreamPrerequisites
    3.1 ImportanceofPrerequisites
    3.2 DeterminetheKindofSoftwareYou'reWorkingOn
    3.3 Problem-DefinitionPrerequisite
    3.4 RequirementsPrerequisite
    3.5 ArchitecturePrerequisite
    3.6 AmountofTimetoSpendonUpstreamPrerequisites
    4 KeyConstructionDecisions
    4.1 ChoiceofProgrammingLanguage
    4.2 ProgrammingConventions
    4.3 YourLocationontheTechnologyWave
    4.4 SelectionofMajorConstructionPractices
    PartII CreatingHigh-QualityCode
    5 DesigninConstruction
    5.1 DesignChallenges
    5.2 KeyDesignConcepts
    5.3 DesignBuildingBlocks:Heuristics
    5.4 DesignPractices
    5.5 CommentsonPopularMethodologies
    6 WorkingClasses
    6.1 ClassFoundations:AbstractDataTypes(ADTs)
    6.2 GoodClassInterfaces
    6.3 DesignandImplementationIssues
    6.4 ReasonstoCreateaClass
    6.5 Language-SpecificIssues
    6.6 BeyondClasses:Packages
    7 High-QualityRoutines
    7.1 ValidReasonstoCreateaRoutine
    7.2 DesignattheRoutineLevel
    7.3 GoodRoutineNames
    7.4 HowLongCanaRoutineBe?
    7.5 HowtoUseRoutineParameters
    7.6 SpecialConsiderationsintheUseofFunctions
    7.7 MacroRoutinesandInlineRoutines
    8 DefensiveProgramming
    8.1 ProtectingYourProgramfromInvalidInputs
    8.2 Assertions
    8.3 Error-HandlingTechniques
    8.4 Exceptions
    8.5 BarricadeYourProgramtoContaintheDamageCausedbyErrors
    8.6 DebuggingAids
    8.7 DeterminingHowMuchDefensiveProgrammingtoLeaveinProductionCode
    8.8 BeingDefensiveAboutDefensiveProgramming
    9 ThePseudocodeProgrammingProcess
    9.1 SummaryofStepsinBuildingClassesandRoutines
    9.2 PseudocodeforPros
    9.3 ConstructingRoutinesbyUsingthePPP
    9.4 AlternativestothePPP
    PartIII Variables
    10 GeneralIssuesinUsingVariables
    10.1 DataLiteracy
    10.2 MakingVariableDeclarationsEasy
    10.3 GuidelinesforInitializingVariables
    10.4 Scope
    10.5 Persistence
    10.6 BindingTime
    10.7 RelationshipBetweenDataTypesandControlStructures
    10.8 UsingEachVariableforExactlyOnePurpose
    11 ThePowerofVariableNames
    11.1 ConsiderationsinChoosingGoodNames
    11.2 NamingSpecificTypesofData
    11.3 ThePowerofNamingConventions
    11.4 informalNamingConventions
    11.5 StandardizedPrefixes
    11.6 CreatingShortNamesThatAreReadable
    11.7 KindsofNamestoAvoid
    12 FundamentalDataTypes
    12.1 NumbersinGeneral
    12.2 integers
    12.3 Floating-PointNumbers
    12.4 CharactersandStrings
    12.5 BooleanVariables
    12.6 EnumeratedTypes
    12.7 NamedConstants
    12.8 Arrays
    12.9 CreatingYourOwnTypes(TypeAliasing)
    13 UnusualDataTypes
    13.1 Structures
    13.2 Pointers
    13.3 GlobalData
    PartIV Statements
    14 OrganizingStraight-LineCode
    14.1 StatementsThatMustBeinaSpecificOrder
    14.2 StatementsWhoseOrderDoesn'tMatter
    15 UsingConditionals
    15.1 ifStatements
    15.2 caseStatements
    16 ControllingLoops
    16.1 SelectingtheKindofLoop
    16.2 ControllingtheLoop
    16.3 CreatingLoopsEasily--FromtheInsideOut
    16.4 CorrespondenceBetweenLoopsandArrays
    17 UnusualControlStructures
    17.1 MultipleReturnsfromaRoutine
    17.2 Recursion
    17.3 goto
    17.4 PerspectiveonUnusualControlStructures
    18 Table-DrivenMethods
    18.1 GeneralConsiderationsinUsingTable-DrivenMethods
    18.2 DirectAccessTables
    18.3 IndexedAccessTables
    18.4 Stair-StepAccessTables
    18.5 OtherExamplesofTableLookups
    19 GeneralControlIssues
    19.1 BooleanExpressions
    19.2 CompoundStatements(Blocks)
    19.3 NullStatements.
    19.4 TamingDangerouslyDeepNesting
    19.5 AProgrammingFoundation:StructuredProgramming
    19.6 ControlStructuresandComplexity
    PartV CodeImprovements
    20 TheSoftware-QualityLandscape
    20.1 CharacteristicsofSoftwareQuality
    20.2 TechniquesforImprovingSoftwareQuality
    20.3 RelativeEffectivenessofQualityTechniques
    20.4 WhentoDoQualityAssurance
    20.5 TheGeneralPrincipleofSoftwareQuality
    21Co llaborativeConstruction
    21.1 OverviewofCollaborativeDevelopmentPractices
    21.2 PairProgramming
    21.3 FormalInspections
    21.4 OtherKindsofCollaborativeDevelopmentPractices
    22 DeveloperTesting
    22.1 RoleofDeveloperTestinginSoftwareQuality
    22.2 RecommendedApproachtoDeveloperTesting
    22.3 BagofTestingTricks
    22.4 TypicalErrors
    22.5 Test-SupportTools
    22.6 ImprovingYourTesting
    22.7 KeepingTestRecords
    23 Debugging
    23.1 OverviewofDebuggingIssues
    23.2 FindingaDefect
    23.3 FixingaDefect
    23.4 PsychologicalConsiderationsinDebugging
    23.5 DebuggingTools--ObviousandNot-So-Obvious
    24 Refactoring
    24.1 KindsofSoftwareEvolution
    24.2 IntroductiontoRefactoring
    24.3 SpecificRefactorings
    24.4 RefactoringSafely
    24.5 RefactoringStrategies
    25 Code-TuningStrategies
    25.1 PerformanceOverview
    25.2 IntroductiontoCodeTuning
    25.3 KindsofFatandMolasses
    25.4 Measurement
    25.5 Iteration
    25.6 SummaryoftheApproachtoCodeTuning
    26 Code-TuningTechniques
    26.1 Logic
    26.2 Loops
    26.3 DataTransformations
    26.4 Expressions
    26.5 Routines
    26.6 RecodinginaLow-LevelLanguage
    26.7 TheMoreThingsChange,theMoreTheyStaytheSame
    PartVI SystemConsiderations
    27 HowProgramSizeAffectsConstruction
    27.1 CommunicationandSize
    27.2 RangeofProjectSizes
    27.3 EffectofProjectSizeonErrors
    27.4 EffectofProjectSizeonProductivity
    27.5 EffectofProjectSizeonDevelopmentActivities
    28 ManagingConstruction
    28.1 EncouragingGoodCoding
    28.2 ConfigurationManagement
    28.3 EstimatingaConstructionSchedule
    28.4 Measurement
    28.5 TreatingProgrammersasPeople
    28.6 ManagingYourManager
    29 Integration
    29.1 ImportanceoftheIntegrationApproach
    29.2 IntegrationFrequency--PhasedorIncremental?
    29.3 IncrementalIntegrationStrategies
    29.4 DailyBuildandSmokeTest
    30 ProgrammingTools
    30.1 DesignTools
    30.2 Source-CodeTools
    30.3 Executable-CodeTools
    30.4 Tool-OrientedEnvironments
    30.5 BuildingYourOwnProgrammingTools
    30.6 ToolFantasyland
    Part VII SoftwareCraftsmanship
    31 LayoutandStyle
    31.1 LayoutFundamentals
    31.2 LayoutTechniques
    31.3 LayoutStyles
    31.4 LayingOutControlStructures
    31.5 LayingOutIndividualStatements
    31.6 LayingOutComments
    31.7 LayingOutRoutines
    31.8 LayingOutClasses
    32 Self-DocumentingCode
    32.1 ExternalDocumentation
    32.2 ProgrammingStyleasDocumentation
    32.3 ToCommentorNottoComment
    32.4 KeystoEffectiveComments
    32.5 CommentingTechniques
    32.6 IEEEStandards
    33 PersonalCharacter
    33.1 Isn'tPersonalCharacterOfftheTopic?
    33.2 IntelligenceandHumility
    33.3 Curiosity
    33.4 IntellectualHonesty
    33.5 CommunicationandCooperation
    33.6 CreativityandDiscipline
    33.7 Laziness
    33.8 CharacteristicsThatDon'tMatterAsMuchAsYouMightThink
    33.9 Habits
    34 ThemesinSoftwareCraftsmanship
    34.1 ConquerComplexity
    34.2 PickYourProcess
    34.3 WriteProgramsforPeopleFirst,ComputersSecond
    34.4 ProgramintoYourLanguage,NotinIt
    34.5 FocusYourAttentionwiththeHelpofConventions
    34.6 PrograminTermsoftheProblemDomair
    34.7 WatchforFallingRocks
    34.8 Iterate,Repeatedly,AgainandAgain
    34.9 ThouShaltRendSoftwareandReligionAsunder
    35 WheretoFindMoreInformation
    35.1 InformationAboutSoftwareConstruction
    35.2 TopicsBeyondConstruction
    35.3 Periodicals
    35.4 ASoftwareDeveloper'sReadingPlan
    35.5 JoiningaProfessionalOrganization
    Bibliography
    Index
    编辑推荐语
    “《代码大全》第1版在我看来堪称软件工程领域的经典之作一而第2版则更棒!”
    ——Ralph Johnson,伊利诺伊州立大学:《设计模式》(Design Patterns)作者之一
    “无论您是新手还是经验丰富的开发人员,《代码大全》(第2版)都能教会您思考编程的*佳方法。”
    ——Jeffrey Richter(WWW.wintellect.com),《Microsoft NET框架程序设计》(AppfiedMicrosoft.NET Framework Programming)作者
    “这本书是讲述软件构建的权威指南一准备孤身前往荒岛的程序员只要带上这本书就足够了。”
    ——Diomidis Spinellis,《代码阅读方法与实践》(Code Readin9:The Open Soume Perspective)作者
    “Steve McConnell是一位既在一线实践,又能把其中奥妙讲个明白的少数人之一。”
    ——John Vlissides,IBM研究院; 《设计模式》(Design Patterns)作者之一
    “Steve McConnell比任何人都·懂得如何构建软件;我们十分庆幸他能把其所有的深邃见解和实践经验写成这样一本重要而新颖的图书。”
    ——“Visual Basic之父”Alan Cooper,《软件观念革命》(About Face 2.0)作者
    Steve McConnell的原作《代码大全》(第1版)是公认的关于编程的*佳实践指南之一,在过去的十多年间,本书一直在帮助开发人员编写更好的软件。现在,作者将这本经典著作全新演绎,融入了*前沿的实践技术,加入了上百个崭新的代码示例,充分展示了软件构建的艺术性和科学性。McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识,把*高效的技术和*重要的原理交织融会为这本既清晰又实用的指南。无论您的经验水平如何,也不管您在怎样的开发环境中工作,也无论项目是大是小,本书都将激发您的思维一并帮助您构建高品质的代码。
    从本书可以了解到如下这些经久不衰的技术与策略:
    做出具有*小复杂度和*大创造性的设计
    从协作式的开发中获益
    应用防御式编程技术来减少并排查错误
    发掘重构或改善代码的机会,并安全可靠地进行代码重构和改善
    结合项目的规格合理选用恰当的构建技术
    快速而有效地排除问题
    尽早地正确解决关键构建问题
    分别在项目的早期、中期以及后期加强代码的质量
    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外