Да се ​​научим да кодираме? Първо се научете да решавате проблема.

Изображение от Unspalsh

Повечето уроци, които сте чели или гледали преди, обикновено правят едно, хранене с лъжица.

Това е „ОК“, за да научите ново нещо, но не е добре, когато трябва да решите истинска задача.

Задачата обикновено включва постигане на цел чрез преодоляване на проблем. Тази публикация разкрива най-важния „съвет“ за всички софтуерни инженери за начинаещи.

TL; DR

Първо, разрешете проблема. След това напишете кода. - Джон Джонсън

С други думи, разтворете разтвора на хартия на стъпки. След това започнете да пишете кода за него. Не се забърквайте първо в кода и софтуерния дизайн.

И така, какво се случва?

Много пъти чувам начинаещи и младши софтуерни инженери да казват: „Мога да следвам урока и мисля, че разбирам концепцията. Но когато се опитах да направя подобно нещо в проекта си за домашен любимец, не можах да го направя. ”

Това се случва по две причини.

Първо, загубихте своя влак на мисъл някъде и не можахте да установите верига.

Второ, бяхте толкова заплетени в кода, че основният проблем, който се опитвате да разрешите, изпадна от фокус.

Този проблем се случва и при софтуерните инженери и дори старшите софтуерни инженери.

Хубавото е, че с опит знаете кога да спрете или да си починете. След това се върнете към проблема с различно предписание и намерете решение по-бързо.

Много от вас могат да се свържат с това: Вие се опитвате толкова усилено да разрешите проблем с часове. Направихте почивка или спахте над нея и на следващата сесия решението беше там за минути.

Това не е магия. Това е разглеждането на проблема от друга гледна точка.

Нека илюстрираме с пример

Трябва да направите задача - например да създадете възстановяване с плащания.

Предоставена ви е схемата на базата данни. Това е бек-енд задача и трябва да създадете POST / възстановяване на API, което може да създаде възстановяването и свързаните с него плащания. Структурата на базата данни е както следва:

Възстановяването винаги има причина, като например „повредени стоки“ или „късна доставка“.

Можете да обсъдите полезния товар на API с един от членовете на екипа. Можете да се съгласите с по-долу полезен товар JSON:

Обичайният сценарий

Това, което повечето софтуерни инженери за начинаещи ще направят, е да започне сканирането на кодовата база, ако има такава. Веднага ще започнат да пишат някакъв код. Ако има някаква култура за тестване, може би те пишат някакъв автоматизиран тестов код.

Тук се подхлъзват повечето начинаещи и дори някои опитни софтуерни инженери. Не пишете код, когато не сте решили проблема.

Подходящата стъпка

Най-подходящата стъпка е да седнете и да разрешите проблема на хартия на стъпки.

Затова се питате какво трябва да направите. Изготвяте план на стъпки и го настройвате.

Ако имате някой старши в екипа си, можете да утвърдите стъпките си и да получите отзиви.

Това също ще намали времето за преглед на кода. И двамата вече сте се съгласили относно модалността на решението.

И така, как да го направите

Задачата, описана по-рано, е да се напише API за създаване / POST, където да се създават възстановявания с плащания.

Всяко възстановяване може да има максимум две плащания. Единият е от тип "пари", а другият е от тип "кредит". Той може също да бъде едно възстановяване на суми само с едно плащане или в брой, или в кредит. Ето как бих написал следните стъпки на хартия:

  1. Създайте метод за получаване на данните от контролера, изпратен от потребителя
  2. Валидирайте всички данни за стойности, видове възстановяване и причини.
  3. Ако всички валидирания преминат, генерирайте произволен буквено-цифров номер с дължина 10, който не съществува в таблицата за възстановяване (рекурсивна проверка)
  4. Ако валидирането не успее да отговори с правилното съобщение за неуспех при валидиране, вземете решение за структурата на отговорите
  5. Стартира транзакция с база данни
  6. Вмъкнете стойностите, свързани с възстановяването на refund_nr, reason_reason, is_premium_customer в таблицата за възстановяване
  7. При успех на вмъкване, вземете идентификатора на последната вложка
  8. С refund_id вмъкнете стойности, свързани с плащането на fk_refund, fk_item, сума, is_cash в таблицата за плащане
  9. Ако всичко върви добре, извършете транзакцията с база данни
  10. Ако е имало проблем, транзакция с база данни за връщане
  11. Отговорете със съобщение за успех или неуспех в зависимост от успеха на транзакцията на базата данни с правилна структура
  12. Превърнете контролера и този метод

Следвайте плана на стъпки, сега напишете кода

След като имате стъпка по стъпка план, можете да започнете да пишете код. След това можете да разгледате по-подробно имената на методите, как да получите връзката към базата данни и други подробности.

В зависимост от езика и рамката можете също да решите къде трябва да остане валидиращият код.

Можете дори да напишете тестове, ако компанията и културата я подкрепят и насърчават.

Когато вашето решение е очевидно в ума ви и имате стъпка по стъпка план за действие на хартия, сега можете да напишете код.

Можете дори да разбиете частите по начини, които ще бъдат по-лесни за довършване и свързване.

Например, логиката на тестване може да бъде нещо, което може да бъде написано отделно и да се тества самостоятелно. Мисля за независими части, които могат да се свържат заедно, за да образуват решението.

заключение

Когато се изправите пред следващата си задача, не започвайте да пишете код от първото.

Първо се захванете с проблема и след това измислете решение със стъпки. Това се прави най-добре далеч от екран на хартия.

След това прецизирайте решението си и обсъдете с някого. Когато сте доволни, преведете това решение на код. Това е малко методично, но много ефективно.

Кодът винаги е среда за решението, а не самото решение.

Ако сте стигнали дотук, моля, оставете ми няколко „клепки“ :).

Благодаря за четенето!

Първоначално публикуван на geshan.com.np.