Hands-on software engineering with Golang :: move beyond basic programming to design and build reliable software with clean code /
This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one.
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham, UK :
Packt Publishing,
2020.
|
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one. |
Beschreibung: | 1 online resource (1 volume) : illustrations |
Bibliographie: | Includes bibliographical references. |
ISBN: | 9781838550240 1838550240 |
Internformat
MARC
LEADER | 00000cam a2200000 i 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-on1164094506 | ||
003 | OCoLC | ||
005 | 20241004212047.0 | ||
006 | m o d | ||
007 | cr unu|||||||| | ||
008 | 200709s2020 enka ob 000 0 eng d | ||
040 | |a UMI |b eng |e rda |e pn |c UMI |d OCLCF |d YDX |d VLY |d EBLCP |d UKMGB |d N$T |d OCLCQ |d OCLCO |d OCLCQ |d OCLCO |d OCLCL | ||
015 | |a GBC021145 |2 bnb | ||
016 | 7 | |a 019705066 |2 Uk | |
019 | |a 1138548430 |a 1138676772 | ||
020 | |a 9781838550240 | ||
020 | |a 1838550240 | ||
020 | |z 9781838554491 | ||
035 | |a (OCoLC)1164094506 |z (OCoLC)1138548430 |z (OCoLC)1138676772 | ||
037 | |a CL0501000121 |b Safari Books Online | ||
050 | 4 | |a QA76.73.G63 | |
082 | 7 | |a 005.1 |2 23 | |
049 | |a MAIN | ||
100 | 1 | |a Anagnostopoulos, Achilleas, |e author. | |
245 | 1 | 0 | |a Hands-on software engineering with Golang : |b move beyond basic programming to design and build reliable software with clean code / |c Achilleas Anagnostopoulos. |
264 | 1 | |a Birmingham, UK : |b Packt Publishing, |c 2020. | |
300 | |a 1 online resource (1 volume) : |b illustrations | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
588 | 0 | |a Online resource; title from title page (Safari, viewed June 30, 2020). | |
504 | |a Includes bibliographical references. | ||
505 | 0 | |a Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect | |
505 | 8 | |a A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code | |
505 | 8 | |a The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively | |
505 | 8 | |a Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders | |
505 | 8 | |a Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock | |
520 | |a This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one. | ||
650 | 0 | |a Go (Computer program language) |0 http://id.loc.gov/authorities/subjects/sh2012000746 | |
650 | 0 | |a Software engineering. |0 http://id.loc.gov/authorities/subjects/sh87007398 | |
650 | 6 | |a Go (Langage de programmation) | |
650 | 6 | |a Génie logiciel. | |
650 | 7 | |a Go (Computer program language) |2 fast | |
650 | 7 | |a Software engineering |2 fast | |
758 | |i has work: |a Hands-On Software Engineering with Golang (Work) |1 https://id.oclc.org/worldcat/entity/E39PCXHCKFwcMv8qQ3pt4MMcCP |4 https://id.oclc.org/worldcat/ontology/hasWork | ||
776 | 0 | 8 | |i Print version: |a Anagnostopoulos, Achilleas. |t Hands-On Software Engineering with Golang : Move Beyond Basic Programming to Design and Build Reliable Software with Clean Code. |d Birmingham : Packt Publishing, Limited, ©2020 |z 9781838554491 |
856 | 4 | 0 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2361535 |3 Volltext |
938 | |a ProQuest Ebook Central |b EBLB |n EBL6029157 | ||
938 | |a EBSCOhost |b EBSC |n 2361535 | ||
938 | |a YBP Library Services |b YANK |n 301076361 | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-on1164094506 |
---|---|
_version_ | 1816882524282945536 |
adam_text | |
any_adam_object | |
author | Anagnostopoulos, Achilleas |
author_facet | Anagnostopoulos, Achilleas |
author_role | aut |
author_sort | Anagnostopoulos, Achilleas |
author_variant | a a aa |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.G63 |
callnumber-search | QA76.73.G63 |
callnumber-sort | QA 276.73 G63 |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock |
ctrlnum | (OCoLC)1164094506 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>05666cam a2200577 i 4500</leader><controlfield tag="001">ZDB-4-EBA-on1164094506</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr unu||||||||</controlfield><controlfield tag="008">200709s2020 enka ob 000 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">UMI</subfield><subfield code="b">eng</subfield><subfield code="e">rda</subfield><subfield code="e">pn</subfield><subfield code="c">UMI</subfield><subfield code="d">OCLCF</subfield><subfield code="d">YDX</subfield><subfield code="d">VLY</subfield><subfield code="d">EBLCP</subfield><subfield code="d">UKMGB</subfield><subfield code="d">N$T</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCL</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBC021145</subfield><subfield code="2">bnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">019705066</subfield><subfield code="2">Uk</subfield></datafield><datafield tag="019" ind1=" " ind2=" "><subfield code="a">1138548430</subfield><subfield code="a">1138676772</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781838550240</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1838550240</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9781838554491</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1164094506</subfield><subfield code="z">(OCoLC)1138548430</subfield><subfield code="z">(OCoLC)1138676772</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">CL0501000121</subfield><subfield code="b">Safari Books Online</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.73.G63</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">23</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Anagnostopoulos, Achilleas,</subfield><subfield code="e">author.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Hands-on software engineering with Golang :</subfield><subfield code="b">move beyond basic programming to design and build reliable software with clean code /</subfield><subfield code="c">Achilleas Anagnostopoulos.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Birmingham, UK :</subfield><subfield code="b">Packt Publishing,</subfield><subfield code="c">2020.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (1 volume) :</subfield><subfield code="b">illustrations</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Online resource; title from title page (Safari, viewed June 30, 2020).</subfield></datafield><datafield tag="504" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references.</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Go (Computer program language)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh2012000746</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Software engineering.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh87007398</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Go (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Génie logiciel.</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Go (Computer program language)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Software engineering</subfield><subfield code="2">fast</subfield></datafield><datafield tag="758" ind1=" " ind2=" "><subfield code="i">has work:</subfield><subfield code="a">Hands-On Software Engineering with Golang (Work)</subfield><subfield code="1">https://id.oclc.org/worldcat/entity/E39PCXHCKFwcMv8qQ3pt4MMcCP</subfield><subfield code="4">https://id.oclc.org/worldcat/ontology/hasWork</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Anagnostopoulos, Achilleas.</subfield><subfield code="t">Hands-On Software Engineering with Golang : Move Beyond Basic Programming to Design and Build Reliable Software with Clean Code.</subfield><subfield code="d">Birmingham : Packt Publishing, Limited, ©2020</subfield><subfield code="z">9781838554491</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2361535</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest Ebook Central</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL6029157</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">2361535</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">YBP Library Services</subfield><subfield code="b">YANK</subfield><subfield code="n">301076361</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
id | ZDB-4-EBA-on1164094506 |
illustrated | Illustrated |
indexdate | 2024-11-27T13:29:59Z |
institution | BVB |
isbn | 9781838550240 1838550240 |
language | English |
oclc_num | 1164094506 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource (1 volume) : illustrations |
psigel | ZDB-4-EBA |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | Packt Publishing, |
record_format | marc |
spelling | Anagnostopoulos, Achilleas, author. Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Achilleas Anagnostopoulos. Birmingham, UK : Packt Publishing, 2020. 1 online resource (1 volume) : illustrations text txt rdacontent computer c rdamedia online resource cr rdacarrier Online resource; title from title page (Safari, viewed June 30, 2020). Includes bibliographical references. Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls web-pages and applies the PageRank algorithm to assign an importance score to each one. Go (Computer program language) http://id.loc.gov/authorities/subjects/sh2012000746 Software engineering. http://id.loc.gov/authorities/subjects/sh87007398 Go (Langage de programmation) Génie logiciel. Go (Computer program language) fast Software engineering fast has work: Hands-On Software Engineering with Golang (Work) https://id.oclc.org/worldcat/entity/E39PCXHCKFwcMv8qQ3pt4MMcCP https://id.oclc.org/worldcat/ontology/hasWork Print version: Anagnostopoulos, Achilleas. Hands-On Software Engineering with Golang : Move Beyond Basic Programming to Design and Build Reliable Software with Clean Code. Birmingham : Packt Publishing, Limited, ©2020 9781838554491 FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2361535 Volltext |
spellingShingle | Anagnostopoulos, Achilleas Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Intro -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Section 1: Software Engineering and the Software Development Life Cycle -- Chapter 1: A Bird's-Eye View of Software Engineering -- What is software engineering? -- Types of software engineering roles -- The role of the software engineer (SWE) -- The role of the software development engineer in test (SDET) -- The role of the site reliability engineer (SRE) -- The role of the release engineer (RE) -- The role of the system architect A list of software development models that all engineers should know -- Waterfall -- Iterative enhancement -- Spiral -- Agile -- Lean -- Eliminate waste -- Create knowledge -- Defer commitment -- Build in quality -- Deliver fast -- Respect and empower people -- See and optimize the whole -- Scrum -- Scrum roles -- Essential Scrum events -- Kanban -- DevOps -- The CAMS model -- The three ways model -- Summary -- Questions -- Further reading -- Section 2: Best Practices for Maintainable and Testable Go Code -- Chapter 2: Best Practices for Writing Clean and Maintainable Go Code The SOLID principles of object-oriented design -- Single responsibility -- Open/closed principle -- Liskov substitution -- Interface segregation -- Dependency inversion -- Applying the SOLID principles -- Organizing code into packages -- Naming conventions for Go packages -- Circular dependencies -- Breaking circular dependencies via implicit interfaces -- Sometimes, code repetition is not a bad idea! -- Tips and tools for writing lean and easy-to-maintain Go code -- Optimizing function implementations for readability -- Variable naming conventions -- Using Go interfaces effectively Zero values are your friends -- Using tools to analyze and manipulate Go programs -- Taking care of formatting and imports (gofmt, goimports) -- Refactoring code across packages (gorename, gomvpkg, fix) -- Improving code quality metrics with the help of linters -- Summary -- Questions -- Further reading -- Chapter 3: Dependency Management -- What's all the fuss about software versioning? -- Semantic versioning -- Comparing semantic versions -- Applying semantic versioning to Go packages -- Managing the source code for multiple package versions -- Single repository with versioned folders Single repository -- multiple branches -- Vendoring -- the good, the bad, and the ugly -- Benefits of vendoring dependencies -- Is vendoring always a good idea? -- Strategies and tools for vendoring dependencies -- The dep tool -- The Gopkg.toml file -- The Gopkg.lock file -- Go modules -- the way forward -- Fork packages -- Summary -- Questions -- Further reading -- Chapter 4: The Art of Testing -- Technical requirements -- Unit testing -- Mocks, stubs, fakes, and spies -- commonalities and differences -- Stubs and spies! -- Mocks -- Introducing gomock Go (Computer program language) http://id.loc.gov/authorities/subjects/sh2012000746 Software engineering. http://id.loc.gov/authorities/subjects/sh87007398 Go (Langage de programmation) Génie logiciel. Go (Computer program language) fast Software engineering fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh2012000746 http://id.loc.gov/authorities/subjects/sh87007398 |
title | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / |
title_auth | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / |
title_exact_search | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / |
title_full | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Achilleas Anagnostopoulos. |
title_fullStr | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Achilleas Anagnostopoulos. |
title_full_unstemmed | Hands-on software engineering with Golang : move beyond basic programming to design and build reliable software with clean code / Achilleas Anagnostopoulos. |
title_short | Hands-on software engineering with Golang : |
title_sort | hands on software engineering with golang move beyond basic programming to design and build reliable software with clean code |
title_sub | move beyond basic programming to design and build reliable software with clean code / |
topic | Go (Computer program language) http://id.loc.gov/authorities/subjects/sh2012000746 Software engineering. http://id.loc.gov/authorities/subjects/sh87007398 Go (Langage de programmation) Génie logiciel. Go (Computer program language) fast Software engineering fast |
topic_facet | Go (Computer program language) Software engineering. Go (Langage de programmation) Génie logiciel. Software engineering |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2361535 |
work_keys_str_mv | AT anagnostopoulosachilleas handsonsoftwareengineeringwithgolangmovebeyondbasicprogrammingtodesignandbuildreliablesoftwarewithcleancode |