Кері қайту
Тех.мақалалар
9 қыркүйек 2024

Жаңадан бастап жатқан әзірлеушіге pet-жобалар не үшін қажет

Pet-жобалар мансаптық жетістіктің кілті: жасалуы бойынша гайд пен кеңестер

Кевин Систром жұмыстан бос уақытында Burbn мобилді қолданбасын әзірледі, онда пайдаланушылар бөлісіп, кездесулерді жоспарлап, фото жүктей алады. Майк Кригермен жобаны қайта ойластырғаннан кейін Instagram әлеуметтік желісі пайда болды. Марк Цукерберг Гарвард студенті бола тұра, pet-жоба ретінде Facebook желісін жасады. Дрю Хьюстон Dropbox-ты өзі тап болған файлдарды сақтау мен синхрондау проблемасын шешу үшін жеке жоба ретінде бастады.

Бұл оқиғалар шағын жеке жобалар адамдардың нақты мәселелерін шешетін болса, жаһандық
компанияларға айналуы мүмкін екенін көрсетеді. Бұл мақалада Kolesa Group backend- әзірлемесінің тимлиді Вячеслав Легостин жаңадан бастап жатқандарға pet-жобалар туралы білу керек нәрсенің бәрін айтып береді.

Pet-жоба деген не және ол не үшін қажет

Pet-жоба — әзірлеуші бос уақытында жасайтын жеке жоба. Мұндай жоба негізінен жаңа технологияларды үйрену және коммерциялық жобаларға жақын жобаларды әзірлеуде тәжірибе
жинау үшін қажет. Сондай-ақ pet-жобаның арқасында сіз сұхбаттасу кезінде өз қабілетіңізді көрсете отырып, жұмыс берушіні қызықтыратын боласыз. Бұл сізді қызықтыратын кез келген идея болуы мүмкін: қолданба, сайт немесе тіпті ойын.

Pet-жобаны дайындау бойынша гайд

● Жоба идеясы

Сізді қызықтыратын тақырыпты таңдаңыз. Мен, мысалы, хоббиімді таңдадым — пейзаждық фотосурет. Бұл сізді барынша тартатын болады: жаңа фишкалар мен жақсартуларды ойлап, пікірлес адамдар мен нақты пайдаланушыларды таба аласыз.

● Кейс

Өз pet-жобамның призмасы – фотографтарға арналған веб-сайт арқылы гайдымды көрсетейін. Оны сұхбаттарда ұялмай көрсетуім үшін оны жасауға екі ай уақытым кетті.

Біз гайд үшін дәл осы идеяны таңдамаймыз: оған кем дегенде он жыл. Біз идеяны басқа бағыттарға кеңейтеміз және жобаны 2024 жылдың шындығына бейімдейміз. Сайт хабтарды, посттарды, пайдалы ақпараты бар динамикалық блоктарды, санаттарды, рейтингтерді қамтуы керек. Сайт Reddit стилінде болады.

1. Стек таңдаймыз

Жобаға арналған технологиялар мен бағдарламалау тілін таңдау мақсатыңызға және еңбек нарығына сәйкес келуі керек. Компанияларда қандай стек қолданылатынын, қайда орналасуды жоспарлап отырғаныңызды анықтаңыз. Backend-әзірлеушілер үшін PHP, Python немесе Java ұсынамын. Сайт үшін PHP таңдаймыз — бұл көптеген оқу материалдары мен Laravel фреймворкі бар салыстырмалы түрде оңай үйренуге болатын бағдарламалау тілі. Laravel-де күшті комьюнити мен көптеген материалдар бар.

Деректерді сақтау үшін әрдайым MySQL немесе PostgreSQL сияқты тегін және танымал реляциялық базаларды таңдаңыз. Backend-әзірлеушілерге frontend-тің қалай жұмыс істейтінін білу маңызды. Жылдам әрі қарапайым беттеу үшін Tailwind CSS кеңес беремін.

2. Сайтқа арналған базалық функциялықты анықтаймыз

- тіркеу және авторизациялау;

- хабтарды — сабреддиттің баламасын жасау {кез келген тақырыпқа Reddit ішіндегі қауымдастық};

- посттар жасау;

- хаб лектері;

- басты бет;

- лайктар, дизлайктар, пікірлер.

Бұл кезеңде сіз қажетті бағдарламалау тілі мен фреймворкты меңгересіз, деректер базасымен
жұмыс істеуді және веб-жобаларға авторизация жасауды үйренесіз. Сондай-ақ, backend- пен frontend-тің бір-бірімен қалай әрекеттесетінін түсінесіз.

3. Жобаны интернетке ораналастырамыз

Негізгі функционал дайын болғанда жобаны интернетте орналастыру керек болады. Сізге виртуалды VPS сервері, операциялық жүйе (мысалы, Ubuntu) және әдемі домен қажет болады. Бұл кезеңде үйренетініңіз:

- SSH-қатынаумен және SSH-кілттермен жұмыс істеу;
- SFTP-хаттамасын орнату және файлдарды VPS серверіне жүктеу;
- терминалмен және келесі командалармен жұмыс істеу: cat, ls, nano, vim, history, grep, apt, cp, mv,
chmod, chown, artisan және т. б.;

- PHP, MySQL, PostgreSQL, NGINX серверінде жұмыс жасау.

Қосымша, қолданбаны контейнерлеу жүйесін – Docker енгізуге болады. Бұл танымал және үйренуге оңай қолданбаларды контейнерлеу жүйесі, онда кітапханалар, жүйелік аспаптар, код және орындау ортасы бар.

4. Логтар және өнімнің күйін бағалау

Жақсы маман логтарды жинап, оларды талдай білуі керек. Логтар — компьютерлік жүйеде болған оқиғалардың бәрі автоматты түрде жазылатын қойма. Бұл қойма мәтіндік файлдар, жеке база немесе бөлек жүйе ретінде қызмет ете алады. NGINX логтарын қайда және қалай іздеу керектігін білу, PHP логтарын және қолданбаның өзін талдай білу, Laravel-дегі Pail сияқты утилиталарды қолдана білу қажет.

5. Өнімді дамытамыз

Осы кезеңде жобаны жақсарту үшін қосымша функцияларды қосуға болады:

1) Redis көмегімен кештеу — парақшаны жүктеуді жылдамдату үшін.

2) Elasticsearch пайдалана отырып сайтта іздеу — пайдаланушы тәжірибесін жақсарту үшін.

3) CI/CD-пайплайндарды баптау — кодты жүйелі автоматты түрде жинау үшін.

4) RabbitMQ немесе Apache Kafka арқылы кезектермен жұмыс істеу—деректерді асинхронды өңдеу үшін.

5) MySQL реляциялық базасынан MongoDB-қа ақпаратты жіберу — деректерді сақтау ыңғайлы болу үшін.

6) Go-да микросервистерді пайдалану — хабарламаны жіберу сияқты бөлек функцияларды ерекшелеп көрсету үшін.

Сұхбаттасуға дайындық бойынша ұсыныстар

1) Түйіндемеде жобада жұмыс істеу кезінде алған дағдыларыңызды көрсетіңіз.

2) Жобаны нақты пайдаланушыларға көрсетіңіз және олардың пікірлерін ескеріңіз.

3) Сұхбаттасу алдында теорияны қайталаңыз және шыншыл болыңыз: жоба тәжірибе алу үшін жасалғанын атап кетіңіз.

Бөлісу