Search
Write a publication
Pull to refresh
17
0
Григорий @naHDop

GO engineer

Send message

OCP из SOLID

Level of difficultyMedium
Reading time9 min
Views3K

Знаю, что тема уже изъезжана вдоль и поперек, но я хотел бы поделиться своим видением Open/Close Principle из всеми любимым SOLID подходу к построении архитектуры софта. Ведь дядюшка Боб херни не посоветует, все таки опыта ему не занимать, поскольку он с 70х годов в разработке и знает базу, что нам и нужно. Да современный софт ушел далеко от того какой он был в 70-х, когда писали логические цепочек на перфокартах, делая дырки в картоне и компиляция занимала прямо прапорционально количеству этих самы карточек, где скорость выполнения считалась количеством символов в минуту. За все это время Дядюшка Боб собирал лучшие практики из которых и получились эти 5 принципов, которые помогут построить софт, который будет не так сильно с течением времени влиять на стоимость одной строки кода. (О чем он и пишет в своей книги «Чистая архитектура»).

Хочу отметить то, что есть мнение, что принципы SOLID — это про ООП и для языков, которые не следуют этой парадигме это не актуально, нет. Эти принципы построения архитектуры приложения не зависят от языка.

Если вы читали книгу «Чистая архитектуры» и дошли до Open/Close principle (SOLID) и из примера ничего не поняли, тогда вы пришли по адресу, поскольку я буду рассматривать именно этот пример. Для меня лично OCP это один из принципов, который заставляет продумывать архитектуру приложения, что очень важно.

Я не буду писать тут тесты или использовать TDD подход к написанию кода, потому, что это отдельная тема, я сделаю простой http сервер с одним эндпойнтом для получения финансового отчета в разных форматах.

Читать далее

Как ИИ разработчиков заменит

Level of difficultyEasy
Reading time2 min
Views2.4K

Последние 3-4 года идет бум ИИ и бизнесов, которые появились и появляются на этой волне. Понятно, что все хотят откусить от этого куска, а инвесторы хотят выгодно вложить миллион, что бы через 5 лет получить 100. За это время мы увидели огромный рывок начиная с того как чат ГПТ взорвал наше сознание а за ним последовала Сора, которая делала очень крутые картинки и видео ряд всего лишь за пару хороших промтов до того, что мы имеем сейчас.

Очень сильно выстрелили RAG engine технологии, которые дали возможность не переучивать модель на корпоративных данных и прям в режими лайва создать векторную БД и засунуть все туда, прикрепить ее к модели и получить очень узко заточенного помошника, который может ответить на любые вопросы из вашего домена.

Скажем у вас есть база знаний на 100+ документов на тему недвижимости, коммерческой или нет, ипотеки, рассрочки, земельные сделки и все такое. Так вот раньше все это надо было найти в этих документах, прочитать, понять и сформировать ответ или подготовить данные по этому. Когда сейчас это можно сделать просто детально описав это AI агенту.

Агенты по написанию кода какого угодно тоже дал огромный прирост в скорости разработки, он помогает закрыть рутинные задачи быстро, главное хорошо контролировать процесс.

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

Появляется много новостей, что биг техи сокращают рабочие места и массово увольняют разработчиков. Плюсом идут посты в LN о том, что работу ищут по пол года. Все это очень демотивирует и складывается впечатление, что скоро действительно разработчики будут не нужны, весь код будет писать ИИ.

Читать далее

Эти сложные map & slice в GO

Level of difficultyMedium
Reading time3 min
Views4.8K

В этой статье я хочу погрузиться в то, как работают некоторые структуры (далее ниже) в ГО. Хотя я и работаю с ГО уже 3й год, все равно есть вещи, в которые интересно погружаться. Хочу отметить, что я не буду погружаться прям сильно в реализацию того как устроены map и slice, скорее на столько, что бы понимать как они ведут себя и почему. Такое часто могут спрашивать на собеседованиях или это может писать более качественный и безопасный код.

Итак на сколько мы знаем (я надеюсь, что и вы читаете статью уже со знанием ГО) в ГО можно разделить типы переменных глобально на 2 группы

Читать далее

Login with MetaMask 1/2 (GO lang)

Level of difficultyMedium
Reading time5 min
Views714

Приветствую тебя, дорогой Разработчик! Хочу поделиться своим опытом о том, как реализовать вход с помощью кошелька Metamask (расширение для браузера) в твой проект. В этой статье я пропускаю весь код архитектуры приложения и покажу тебе только сервисный код (нижний уровень кода. Взгляни на DDD архитектуру, также известную как «Чистый код»). Я использую GO с распространенными библиотеками для веб‑разработки, такими как Gin, jwt, sqlc и другие.

Для начала давай представим, как должен работать наш процесс входа. Как мы все знаем, стратегия «разделяй и властвуй» очень эффективна для чего угодно. Поэтому здесь мы можем разделить наш процесс на 2 логических шага. Назовем их «Начало» и «Завершение». Теперь давай посмотрим на схему нашего процесса, потому что мы, как инженеры, должны максимально упростить свою работу. Итак, схема — отличный способ достичь этого.

Читать далее

Как я умный аквариум делал (frontend)

Reading time6 min
Views8.8K

Пролог



Как я рассказывал тут, я начал постройку умного аквариума на основе платы NodeMCU. На ней я использовал прошивку с micropython, поднял веб сервер и сделал API для манипуляции всеми периферийными устройствами и датчиками. Поскольку мой вариант умного аквариума изначально планировался как автономный, я хотел сделать некий UI для отслеживания всех процессов ну и для ручных корректировок. Каждый раз обращаться по роутам типа: http://192.168.1.70/led_controller?impulse=4000&level=200&ledName=white было очень муторно и неудобно. Особенно когда ты уже лег спать и под рукой только телефон. Да и опять же, хотелось получить levelup в разработке и сделать что-то увлекательное.


За основу UI взял Vue.js. Авторизация как таковая не нужна, т.к. мой "умный друг" был только локально в пределах моего WI-FI окружения. Да и если бы его взломали, ничего страшного не случилось. Другое дело когда я буду делать умный дом, там уже безопасность на первом месте, но сейчас не об этом. Итак, никакой авторизации, только SPA("Одностраничное приложение": "single page application"), никакого роутинга, все показатели и манипуляторы на одной странице. Из того что было сделано на backend — контроль за LED-матрицами и температурный датчик. Создаем новый проект на гите, делаем клон на рабочем месте и запускаем vue-cli:

Читать дальше →

Как я умный аквариум делал (backend)

Reading time8 min
Views16K

image


Пролог


Работая программистом в одной из больших и успешных компаний Москвы, я не переставал совершенствовать свои навыки программирования и проходил различные курсы на платформе Udemy.
Конечно просто смотря курс и повторяя все за автором было скучновато, да и были моменты которые я не понимал ввиду своей некомпетентности на тот момент. Нужно делать свои проекты, основываясь на том, что дает автор курса — подумал я, и был конечно же прав. Только настоящие трудности и их разрешение дает вам бесценный опыт, это и есть настоящая обучение.


Обучался я в основном web программированию, поскольку и работал на том же направлении. Охватывал Full-stack разработку, поскольку решил, что нужно разбираться как в серверной части, так и во фронтовой. Учил JavaScript и различные фреймворки для бека это были Express, Appolo GraphQL (поскольку на работе был именно такой стек, да и в целом хотелось попробовать что-то отличное от REST подхода), на фронте это был все тот же Apollo GQL и Vue.

Читать дальше →

Information

Rating
1,680-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity