注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合代碼大全(第二版 英文影印版)

代碼大全(第二版 英文影印版)

代碼大全(第二版 英文影印版)

定 價(jià):¥148.00

作 者: (美)Steve McConnell
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121033629 出版時(shí)間: 2006-12-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 914 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《代碼大全(第2版)》是著名IT暢銷書作者、IEEE Software雜志前主編、具有20年編程與項(xiàng)目管理經(jīng)驗(yàn)的SteveMcConnell十余年前的經(jīng)典著作的全新演繹:第2版做了全面的更新,增加了很多與時(shí)俱進(jìn)的內(nèi)容,包括對(duì)新語(yǔ)言、新的開(kāi)發(fā)過(guò)程與方法論的討論,等等。這是一本百科全書式的軟件構(gòu)建手冊(cè),涵蓋了軟件構(gòu)建活動(dòng)的方方面面,尤其強(qiáng)調(diào)提高軟件質(zhì)量的種種買踐方法。作者特別注重源代碼的可讀性,詳細(xì)討論了類和函數(shù)命名、變量命名、數(shù)據(jù)類型和控制結(jié)構(gòu)、代碼布局等編程的最基本要素,也討論了防御式編程、表驅(qū)動(dòng)法、協(xié)同構(gòu)建、開(kāi)發(fā)者測(cè)試、性能優(yōu)化等有效開(kāi)發(fā)實(shí)踐,這些都服務(wù)于軟件的首要技術(shù)使命:管理復(fù)雜度。為了培養(yǎng)程序員編寫高質(zhì)量代碼的習(xí)慣,書中展示了大量高質(zhì)量代碼示例(以及用作對(duì)比的低質(zhì)量代碼),提高軟件質(zhì)量是降低開(kāi)發(fā)成本的重要途徑。除此之外,《代碼大全(第2版)(英文版)》歸納總結(jié)了來(lái)自專家的經(jīng)驗(yàn)、業(yè)界研究以及學(xué)術(shù)成果,列舉了大量軟件開(kāi)發(fā)領(lǐng)域的真實(shí)案例與統(tǒng)計(jì)數(shù)據(jù),提高《代碼大全(第2版)(英文版)》的說(shuō)服力?!洞a大全(第2版)(英文版)》中所論述的技術(shù)不僅填補(bǔ)了初級(jí)與高級(jí)編程實(shí)踐之間的空白,而且也為程序員們提供了一個(gè)有關(guān)軟件開(kāi)發(fā)技術(shù)的信息來(lái)源?!洞a大全(第2版)(英文版)》對(duì)經(jīng)驗(yàn)豐富的程序員、技術(shù)帶頭人、自學(xué)的程序員及沒(méi)有太多編程經(jīng)驗(yàn)的學(xué)生都是大有裨益的。

作者簡(jiǎn)介

  Steve McConnell 是Construx公司首席軟件工程師。他是軟件工程知識(shí)體系(SWEBOK)項(xiàng)目構(gòu)建知識(shí)領(lǐng)域的先驅(qū)。Steve曾就職于微軟、波音以及西雅圖地區(qū)的一些公司,從事軟件工程的研究。Steve McConnell是以下著作的作者:《快速開(kāi)發(fā)Rapid Development》(1996)、《軟件項(xiàng)目長(zhǎng)存之道Software Project Survival Guide 》(1998)、和《專業(yè)軟件開(kāi)發(fā)Professional Software Development》(2004)的 作者。他的書作為杰出軟件開(kāi)發(fā)書籍,曾兩次獲得Software Development雜志的優(yōu)震撼大獎(jiǎng)。1998 年, Steve被Software Development雜志的讀者評(píng)為軟件業(yè)最具影響力的三大人物之一,與比爾.蓋茨(Bill Gates)和李納斯.托瓦茲(Linus Torvalds)齊名。而且,Steve還是SPC(Software Productivity Center,加拿大軟件進(jìn)程改進(jìn)公司)的ESTIMATE Professional(的一款計(jì)劃和估算工具)主要開(kāi)發(fā)者, Software Development Productivity award(軟件開(kāi)發(fā)生產(chǎn)力大獎(jiǎng))的獲得者。Steve從1984年就開(kāi)始從事桌面軟件產(chǎn)業(yè),現(xiàn)在在快速開(kāi)發(fā)方法論、工程估算、軟件架構(gòu)實(shí)施、性能調(diào)整、系統(tǒng)整合、和第三方合同管理方面已經(jīng)具有專業(yè)的技術(shù)。

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)