Привет-привет! Сегодня утром решила написать о том, какая я бабка, потому что почти не использую ChatGPT, да и не очень он мне нужен. К тому же говорят, что не для всякой разработки он хорош, да и вообще...
Но немного погодя я подумала, что шутка про бабку совсем не шутка, и как-то стрёмно стало. Поэтому решила я провести свой первый эксперимент. Рассказываю.
Задача.
С помощью chatGPT написать простой http-service. И не абы как, а чтобы с классами, интерфейсами, конфигурацией в yaml. То есть сделать что-то, что можно будет дальше красиво и аккуратно развивать.
Первая итерация без фанатизма, потому что я решила все это дело проделывать на двух языках: на Go, так как он мне сейчас полезен. И на C++, ибо любовь.
Итак, что получилось.
Go:
В первой итерации, конечно, все было а-бы-как и в одной функции main, но простыми пожеланиями тут да там добавить интерфейс, заменить библиотеки для jwt и логирования, все получилось довольно симпатично. AI исполнял мои пожелания, забавно приговаривая: "Это делает код более модульным и удобным для расширения".
Дальше беру написанный код, спрашиваю как запустить, выполняю go mod, затем go run и сервер заработал.
Итоговый код здесь.
C++ или любовь зла:
Тут у меня все еще на этапе инициализации репозитория что-то пошло не так. И на этапе коммита в main, потому что я решила лицензию (она ведь мне очень нужна) закоммитить напрямую из веба... но вернемся к сути.
Прошу переписать гошный код на С++. Из приятного: нашел нужные мне библиотеки, классы и интерфейсы сохранил, названия, правда, из гошки скопировал, но пока выглядит ок. Не все библиотеки я знаю (я же только на яндексовых плюсах умею), но я ещё поразбираюсь, что там за звери. Из неприятного: про умные указатели он, конечно, не в курсе, надо будет явно всё проговорить. Но это в следующей серии, потому что прежде чем глубоко копаться в коде, я решила его запустить.
Хе-хе. Тут-то мой энтузиазм поугас. CMakeLists.txt он, конечно, мне написал, хотя и не сразу. Я немного окольными путями к этому пришла, потому что на вопрос "как запустить", он мне предложил какой-то нерабочий MakeFile, причём ориентированный на linux (ну ладно, он не знал, хотя... я же из Safari его открываю, недоработочка!). Важным допущением оказалось, что AI подразумевет, будто у меня все библиотеки мира уже подтянуты. Поэтому пришлось разбираться как их установить. С yaml-cpp всё получилось чудесно, но вот с jwt-cpp провал. Он оказалось не поддерживался homebrew, мне предложили собрать его самостоятельно, и пока я сдулась. Потому что хочу документировать все вспомогательные действия, чтобы мой сервис кто угодно мог собрать и запустить. Плюс суббота уже подходит к концу, а мне ещё девчачий роман почитать нужно.
Итоговый код здесь.
Вот так вот. Не знаю, интересно ли вам, но мне было интересно, и я к нему еще вернусь.
P.S. а еще я снова посмотрела на плюсовый код и не поняла, какой CodeStyle он использует...
P.P.S. Затраченное время на код и текст: 4 часа.
Post #243
229