Учите да шифрирате? Прво научите да решите проблем.

Слика са Унспалсх

Већина туторијала које сте до сада читали или гледали обично раде једно, храњење кашиком.

Ово је „у реду“ да бисте научили нову ствар, али није добро када требате да решите прави задатак.

Задатак обично укључује постизање циља превазилажењем проблема. Овај пост открива најважнији „савјет“ за све софтверске инжењере почетнике.

ТЛ; ДР

Прво решите проблем. Затим напишите код. - Јохн Јохнсон

Другим речима, решење решите на папиру у корацима. Затим почните да пишете код за то. Немојте се прво заплести у дизајну кода и софтвера.

Па, шта се догађа?

Много пута чујем почетнике и млађе софтверске инжењере како кажу: „Могао бих да пратим упутства и помислио сам да разумем концепт. Али када сам покушао да учиним сличну ствар на пројекту свог кућног љубимца, нисам то могао учинити. “

То се догађа из два разлога.

Прво, негде сте изгубили воз мисли и нисте успели да успоставите ланац.

Друго, толико сте се заплели у коду да је главни проблем који сте покушавали да решите испао из фокуса.

Овај проблем се такође дешава код софтверских инжењера, па чак и старијих софтверских инжењера.

Добра ствар је што с искуством знате када треба зауставити или предахнути. Затим се вратите на проблем са другачијим рецептом и брже пронађите решење.

Многи од вас могу се повезати са тим: Тешко сте се трудили да решите проблем сатима. Одморили сте се или преспавали, а следеће сесије је решење било за неколико минута.

Ово није магија. На проблем се гледа са другог становишта.

Покажимо са примером

Морате да одрадите задатак - на пример, направите поврат средстава са уплатама.

Добивате шему базе података. Ово је помоћни задатак и морате да креирате ПОСТ / рефунд АПИ, који може да створи поврат и повезана плаћања. Структура базе података је сљедећа:

Поврат новца увек има разлога, попут „оштећене робе“ или „касне испоруке“.

Можете да разговарате о корисном оптерећењу АПИ-ја са једним од чланова тима. Можете се сложити са доњим оптерећењем ЈСОН-а:

Уобичајени сценарио

Оно што ће већина софтверских инжењера почетника учинити је скенирање базе кода, уколико је постоји. Одмах ће почети писати неки код. Ако постоји нека култура за тестирање, можда напишу неки аутоматизовани код за тестирање.

Овде клизи већина почетника, па чак и неки искусни софтверски инжењери. Не пишите код када нисте решили проблем.

Одговарајући корак

Најприкладнији корак је да седнете и решите проблем на папиру у корацима.

Зато се запитајте шта треба да урадите. Смислите план у корацима и прилагодите га.

Ако у свом тиму имате некога старијег, можете да потврдите кораке и добијете повратне информације.

То ће такође смањити време прегледа кода. Обоје сте се већ сложили о модалитету решења.

Па како то учинити

Раније описан задатак је написати АПИ креирање / ПОСТ где се могу креирати рефундације са уплатама.

Сваки поврат новца може имати највише две уплате. Један је типа "готовина", а други типа "кредита". То може бити и један поврат новца са само једним плаћањем било готовине или кредита. Ево како бих на папир написао следеће кораке:

  1. Креирајте методу за узимање података од контролера које је корисник послао
  2. Провјерите све уносе за вриједности, врсте поврата и разлоге.
  3. Ако прође сва потврда, генерирајте случајни алфанумерички број дужине 10 који не постоји у табели поврата (рекурзивна провјера)
  4. Ако потврда не одговори одговарајућом поруком о неуспеху у валидацији, одлучите о структури одговора
  5. Покрените трансакцију базе података
  6. Уметните вредности рефунд_нр, разлог_разлога, ис_премиум_цустомер у табелу поврата
  7. Након успеха уметања, узмите ид последњег уметка
  8. Уз рефунд_ид, у таблицу плаћања уметните вредности фк_рефунд, фк_итем, износ, ис_цасх
  9. Ако је све добро прошло трансакцију базе података
  10. Ако је било проблема, повратите базу података
  11. Одговорите с поруком о успеху или неуспеху у зависности од успеха трансакције базе података са одговарајућом структуром
  12. Повежите контролер и ову методу

Пратите план у корацима, а сада напишите код

Након што направите корак по корак план можете почети са писањем кода. Затим можете детаљније да погледате имена метода, како доћи до везе са базом података и других детаља.

У зависности од језика и оквира, такође можете одлучити где треба да остане код за потврду.

Можете чак написати тестове ако их компанија и култура подржавају и охрабрују.

Кад вам се решење очита у мислима и имате корак-по-корак акциони план на папиру, сада можете писати код.

Делове можете чак и раздвојити на начин који ће бити лакши за довршавање и повезивање.

На пример, логика тестирања може бити нешто што се може написати одвојено и тестирати самостално. Размишља о независним деловима који се могу повезати заједно да би се створило решење.

Закључак

Када се суочите са следећим задатком, немојте да започињете писање кода од покретања.

Прво решите проблем, а затим смислите решење у корацима. Ово је најбоље учинити далеко од екрана на папиру.

Затим, прочистите своје решење и разговарајте с неким. Кад сте задовољни, преведите то решење у код. Ово је помало методично, али врло ефикасно.

Код је увек медиј за решење, а не за само решење.

Ако сте стигли толико далеко, молим вас, оставите ми неколико "пљеска" :).

Хвала за читање!

Првобитно објављено на гесхан.цом.нп.