Поносно нудим овај садржај бесплатно, али ако желите да захвалите:
- Истражите језик Го писањем тестова
- ** Набавите уземљење са ТДД **. Го је добар језик за учење ТДД-а јер је то једноставан језик за учење и уграђено је тестирање
- Будите уверени да ћете моћи да започнете писање робусних, добро тестираних система у програму Го
- Погледајте видео снимак или прочитајте зашто су јединствено тестирање и ТДД важни
- Инсталирајте Го - Поставите окружење за рад.
- Здраво Свете -Декларишући променљиве, константе, if/else изразе, прекидаче, напишите свој први програм и напишите свој први тест. Синтакса и затварања подтеста.
- Цели бројеви - Боље истражите синтаксу декларације функција и научите нове начине за побољшање документације вашег кода.
- Понављање - Сазнајте више о
for
и бенчмаркингу. - Низови и делови - Сазнајте о низовима, парчадима,
len
, аргументима промењивих,range
и покривености теста. - Структуре, методе и интерфејси - Сазнајте о структури (struct), методама, интерфејсу (interface) и тестовима вођеним табелом.
- Показивачи и грешке - Сазнајте више о показивачима и грешкама.
- Мапе - Сазнајте о складиштењу вредности у структури података мапе.
- Dependency Injection - Сазнајте о убризгавању пакета од којих зависи апликација (dependency injection), како се то односи на употребу интерфејса и прајмера на ио.
- Mocking - Узмите неки постојећи непроверени код и користите ДИ са лажирањем да бисте га тестирали.
- Concurrency - Научите како да пишете истовремени код да бисте убрзали софтвер.
- Select - Научите како да елегантно синхронизујете асинхроне процесе.
- Reflection - Сазнајте о одразу (reflection)
- Синхронизација - Научите неке функције из пакета за синхронизацију, укључујући
WaitGroup
иMutex
- Контекст - Користите контекстни пакет за управљање и отказивање дуготрајних процеса
- Увод у тестове засноване на својствима - Вежбајте ТДД са катама римских бројева и уђите у кратки увод у тестове заснованим на својствима
- Математика - Користите пакет
math
за цртање SVG сата - Читање датотека - Читајте датотеке и обрађујте их
Сад кад сте надам се да сте сварили одељак Го основе, имате добар темељ за већину Го-ових језичких карактеристика и како да урадите ТДД.
Овај следећи одељак укључује израду апликације.
Свако поглавље ће поновити претходно, проширујући функционалност апликације онако како налаже наш власник производа.
Биће представљени нови концепти који ће олакшати писање сјајног кода, али већина новог материјала ће научити шта се може постићи из Го-ове стандардне библиотеке.
На крају овога, требали бисте добро схватити како итеративно написати апликацију у Го-у, поткрепљену тестовима.
- HTTP сервер - Направићемо апликацију која преслушава HTTP захтеве и одговара на њих.
- JSON, усмеравање и уграђивање - Направићемо крајње тачке врате JSON и истражићемо како се врши рутирање.
- IO и сортирање - Записаћемо и читати податке са диска и покрићемо сортирање података.
- Командна линија и структура пројекта - Подржавајте више апликација из једне базе кода и читајте унос из наредбене линије.
- Време - користећи пакет
time
за планиране активности. - WebSockets - научите како да пишете и тестирате сервер који користи WebSockets.
Често налетим на питања на интернетским мрежама попут
Како да тестирам своју невероватну функцију која ради x, y и z
Ако имате такво питање, покрените га као проблем на гитхуб-у, а ја ћу покушати наћи времена да напишем кратко поглавље за решавање проблема. Осећам да је овакав садржај драгоцен јер решава реална питања људи око тестирања.
- OS exec - Пример како можемо да се обратимо ОС-у за извршавање наредби за преузимање података и одржавање пословне логике на тестирању/
- Врсте грешака - Пример креирања сопствених типова грешака ради побољшања тестова и олакшавања рада са кодом.
- Читач који је свестан контекста - Научите како TDD увећавати
io.Reader
отказивањем. На бази io.Reader са контекстом за Го - Поновно посећивање HTTP руковаоца - Чини се да је тестирање HTTP руковаоца проклетство постојања многих програмера. Ово поглавље истражује проблеме око правилног дизајнирања руковаоца.
- Why - Погледајте видео снимак или прочитајте зашто су јединствено тестирање и TDD важни
- Intro to generics - Научите како да напишете функције које узимају генеричке аргументе и како да правите сопствену генеричку структуру података
- Anti-patterns - Кратко поглавље о TDD-у и јединственом тестирању анти-образаца
- Овај пројекат је у току. Ако желите да дате свој допринос, контактирајте нас.
- Прочитај contributing.md за смернице
- Има ли идеја? Направите дебату
Имам неко искуство с увођењем Гоа у развојне тимове и испробао сам различите приступе како да од неких људи знатижељних о Гоу развијем високоефикасне ауторе Го система.
Приступ који смо покушали је да заузмемо the blue book и сваке недеље разговарамо о следећем поглављу заједно са вежбама.
Волим ову књигу, али она захтева висок ниво посвећености. Књига врло детаљно објашњава концепте, што је очигледно сјајно, али то значи да је напредак спор и стабилан - ово није за свакога.
Открио сам да док је мали број људи читао поглавље X и изводио вежбе, многи људи то нису чинили.
Кате су забавне, али су обично ограничене у свом обиму за учење језика; мало је вероватно да ћете користити гороутине за решавање кате.
Други проблем је када имате различит ниво ентузијазма. Неки људи само науче језик много више од других, а када демонстрирају шта су урадили, збуњују људе особинама којима другима нису познате.
То на крају чини да се учење осећа прилично неструктурирано и ад хок.
Убедљиво најефикаснији начин био је полаганим увођењем основа језика читањем go by example, истражујући их на примерима и расправљајући о њима у групи. Ово је био интерактивнији приступ од „читања поглавља x за домаћи задатак“.
Временом је тим стекао чврсте темеље граматике језика, тако да смо могли почети да градимо системе.
Ово ми се чини аналогно вежбању скала приликом покушаја учења гитаре.
Није важно колико уметнички мислите да сте, мало је вероватно да ћете писати добру музику без разумевања основа и вежбања механике.
Када научим нови програмски језик, обично почнем да се петљам у REPL, али на крају, треба ми више структуре.
Оно што волим да радим је да истражујем концепте, а затим идеје учврстим тестовима. Тестови потврђују тачност кода који пишем и документује особину коју сам научио.
Користећи своје искуство учења са групом и свој лични начин, покушаћу да створим нешто што се надам да ће се показати корисним другим тимовима. Учење основа писањем малих тестова, да бисте затим могли да искористите постојеће вештине дизајнирања софтвера и испоручите неке сјајне системе.
- Људи који су заинтересовани да науче Го.
- Људи који већ знају нешто о Го-у, али желе да истраже тестирање са ТДД-ом.
- Рачунар!
- Инсталиран Го
- Уређивач текста
- Неко искуство са програмирањем. Разумевање појмова попут
if
, променљивих, функција итд. - Лежерност у коришћењу терминала
- Додајте издања / пошаљите PRs овде or tweet me @quii
Logo is by egonelbre Каква звезда!