Иллюзиясыз
Сен әзірлеуші болғың келе ме? Онда бірден иллюзиясыз бастайық. Әзірлеу — бұл «код жазу» емес. Әзірлеу негізінен бұрыннан жазылған нәрселермен жұмыс істеу. Шынын айтқанда, ~30% жаңа мүмкіндіктер, ~70% күнделікті жұмыс. Дәл осы 70% адамдарды сындырады.
Тәжірибеде жұмыс қалай көрінеді
Кәсіпке алғаш кіріскенде, бәрі былай көрінеді: сен отырасың, код жазасың, фичалар жасайсың, жаңа нәрсе жасайсың. Іс жүзінде басқалардың кодын оқисың, өзің жазбаған логиканы түсінесің, багтарды түзетесің, ескіні қайта жазасың, тесттермен қамтисың, құжаттама жазасың. Және тек кейде — «жаңа нәрсе» жасайсың.

Тесттер
Мен алғаш рет тесттермен бетпе-бет келгенде, оның не үшін қажет екенін мүлдем түсінбедім. Бұл артық уақыт, күрделендіру, «жұмыс істеп тұр ғой» деп көрінді. Кейін TDD туралы айтқан конференцияға бардым. Бір сәтте маған жетті: тесттер — бұл «дұрыс» туралы емес. Бұл жүйені бақылау туралы. Қазір мен тесттерсіз кодты іс жүзінде жазбаймын. Себебі олар қателерді продакшнға дейін ұстайды, өзгерістер кезінде сенімділік береді және жүйенің дамуын қашықтықта жылдамдатады. Иә, қазір көбірек уақыт жұмсайсың, бірақ кейін бірнеше есе үнемдейсің. Егер тест жазу саған қызықсыз болса, сен мамандыққа дайын емессің.
Басқа кодты оқу
Бұл ең бағаланбаған нәрселердің бірі. Жаңа компанияға келгенде, саған қолжетімділік береді, бірдеңелерді ауызша түсіндіреді және «түсініп ал» дейді. Сосын сен отырасың да оқисың. Көп. Ұзақ. Толық түсінбей. Бастапқыда бұл шаршатады, себебі: контекст жоқ, толық көрініс жоқ, код әртүрлі сапада болуы мүмкін. Бірақ бұл міндетті кезең, және мұнда бетбұрыс сәті бар. Алдымен сен жай ғана оқисың, кейін қай жерде нашар, қай жерде жақсартуға болатынын, қай жерде архитектуралық мәселелер бар екенін көре бастайсың, және бұл өсу болып табылады.
Багтар мен түзетулер
Көп жағдайда бұл былай көрінеді: сенде бір тапсырма бар, сен оған тереңдейсің, сосын продакшннан баг келеді. Сен ауысасың. Контекстті жоғалтасың. Қайта оралып, тапсырмаға қайта кірісесің. Бұл қалыпты жағдай. Зрелые командаларда кезекшілік процестері бар (багтарға арналған арнайы адамдар). Бірақ тіпті онда да бұл жұмыстың бір бөлігі. Егер сен «тек жаңа фичалар жазамын» деп ойласаң — жоқ. Сен көп нәрсені жөндейсің.
Рефакторинг және техникалық қарыз
Дамытудағы ең қауіпті фраза: «кейінірек қайта жазамыз». Көп жағдайда «кейінірек» уақтылы келмейді. Мен кодтың өзгертуге қорқынышты жағдайға дейін өсіп, бәрі бір-бірімен байланысып, өнімділік төмендегенін көрдім. Бір сәтте үлкен өзгеріс жасауға тура келеді. Менде жүйе енді жұмыс істей алмайтын жағдай болды, іздеу және сүзгілер нашар жұмыс істеді, жүктеме дерекқорды өлтірді. «Жамаудың» орнына API құрылымын өзгертуге, сақтау орнын (MySQL → Elasticsearch) ауыстыруға, жүйенің бір бөлігін қайта құрастыруға тура келді. Бұл тез процесс емес. Бірақ бұл техникалық қарыздың жиналғанының бағасы.

Нағыз әзірлеуші деген кім
Енді бастысы. Мұның бәрі неге маңызды. Себебі әзірлеуші — бұл код жазатын адам емес. Әзірлеуші — бұл жүйені қолдайтын, жүйені дамытатын, оны жұмыс күйінде ұстайтын адам, ал бұл іс жүзінде әрқашан күнделікті жұмыс.
Қарапайым дайындық тесті
Қарапайым тест бар. Егер саған тесттер жазу қызықсыз болса, басқа біреудің кодын оқу ашуландырса, қателікті түсінгің келмесе - сен бұл мамандыққа дайын емессің. Бұл қалыпты жағдай. Мұны бір жылдан кейін емес, ертерек түсінген жақсы. Керісінше, егер сен жазудан гөрі көбірек оқуға, басқа біреудің қателерін түзетуге, кодтың болашағы туралы ойлануға дайын болсаң, өсуге мүмкіндігің бар.
Тәртіп пен өсу
Жақсы жаңалық - уақыт өте келе бұл «күнделікті жұмыс» болудан қалады. Сен кодты тезірек түсініп, мәселелерді алдын ала көріп, жұмысты жеңілдететін құралдарды қолдана бастайсың. Бұл процестің қалыпты бөлігіне айналады. Даму тек шабыт туралы емес. Бұл тәртіп туралы. Егер сен бұған дайын болсаң, қалғанының бәрі келеді.