Comments 38
Вы бы хоть введённый IP на валидность regexp'ом проверяли, прежде чем скармливать что попало стороннему API. Да и коды ошибок в HTTP бывают другие, кроме 404...
P.S. Мне казалось, что статья про написание очередного hello world интересна разве что если это hello world на каком-то экзотическом языке :) А тут ещё и уровень "средний" - что же тогда "лёгкий"?..
Не имею желания расписывать подробный ответ, но могу сказать точно, что ваш комментарий полезен для меня. Так как я являюсь начинающим программистом, комментарии, которые указывают на недочёты, ошибки - это топ. Если говорить про ориентиры для разных уровней сложностей, то, возможно, мне нужно будет пересмотреть их.
Дорогу осилит идущий, а программирование освоит решающий!
Это все прекрасно, но зачем на Хабр? 99% из прочитавших статью просто потеряли свое время
Русскоязычный;
Блог на Хабре будет плюсом, когда начну устраиваться на работу;
Нравится сама площадка.
Блог на Хабре будет плюсом, когда начну устраиваться на работу;
Почему вы так решили? Вы разве нанимаете? Конкретно такой текст будет скорее минусом (и да, я нанимаю).
Не нанимаю, но читаю разных работодателей. Это не последний текст, проект, который собираюсь писать. Если в будущем работодатель будет смотреть на самую первую статью, один из самых первых проектов и считать это как за минус, то для меня это покажется странным
Вам может показаться что угодно — но работодателя это не волнует. Не, ну минусом это вряд ли будет — я преувеличиваю, но плюсом тоже вряд ли. В чем плюс-то? Что вы решили тривиальную задачу, которая должна решаться на работе по штуке в день в нормальном рабочем режиме? Ну да, вы продемонстрировали, что вы что-то умеете (в том числе — как-то описывать свою работу). Ну не минус конечно… но вот знаете, мы уже с месяц примерно ищем разработчика. И проблема в том, что все попадающиеся — на одно лицо. Их как будто выпускала одна автоматическая линия — они знают все одно и тоже, и в резюме пишут это же. Только названия компаний отличаются. При этом они все люди с каким-то но опытом, иногда даже большим, но никто из них не выделяется ровным счетом ничем.
Ну вот и тут примерно так же — выделиться из массы подобный текст не позволит. Ну во всяком случае — как по мне. Но пробовать дальше конечно стоит.
Если читать ваш комментарий, то сразу появляется вопрос. А как выделиться из массы?
Это очень хороший вопрос. Я, будучи джуном, несколько раз хотел написать статью на хабр и даже начинал. Мне везло, на нормальную статью материала не хватало и условно через месяц я понимал, что мой текст очень слабый, что мне не о чем на самом деле рассказывать.
Я не знаю идеальных решений, но предложу 3 варианта - 1) брать околоновостные темы - например, вышла новая библиотека/фреймворк/технология и разобраться в ней, описать важные моменты, можно сделать это в виде грамотной компиляции из нескольких источников 2) перевод или компиляция переводов 3) на форумах/в чатах описать свой бэкграунд, желаемую область развития и попросить более опытных коллег набросать тем, которые можно разобрать, изучить и по которым можно написать статью.
А вы думаете я знаю? На моем уровне (а я 45 лет программирую) это точно так же сложно. Все иначе — но выделиться все равно проблема.
Работодателю будет достаточно GitHub, а статья на хабре уйдёт в минус, потому что не представляет из себя ничего полезного. Код на гите вы сможете совершенствовать (а здесь есть что совершенствовать). Здесь же в нём нет никакого смысла
Прежде чем начать писать нужно очень, очень, очень много читать :)
Я новичок и мне понравилось! Давайте ещё! )
Не очень понятно для меня данное утверждение, но ладно
А загуглить maxmind? )
питон не в тренде. на питоше только на смузи хватит. даешь раст.
а так mmdblookup и grep в руки
А мне понравилось. Простенькое не напряжное упражнение :-)
А какой смысл вообще искать город)))? разве что от нечего делать? Причем в начале статьи написать что, точность очень низкая))) Вот чисто практически?
Я вообще ни разу не программист но должно быть практическое применение, что бы на это тратить время)
Немного не в тему )
Прочитал кучу статей про NFC метки и так не нашел реально полезного применения, что бы замудриться с покупкой программатора!!! У кого есть идеи с удовольствием почитаю ))
Про гостевой ВФ можете сразу не писать))
Целая кучка bad practises, во некоторые из них:
Нейминг функций/методов - location нужно переименовать в get_location, например. Чтобы было понятно, что это не какой-то объект, а запрос получения данных. database.base - нужно переименовать в database.write (например)
Создание таблицы должно происходить отдельно от запросов в нее. Например, при старте приложения создаётся таблица, далее создаётся объект базы, в котором есть методы подключения к базе, отключения от базы (или контекстный менеджер) и метод для осуществления запроса.
Не совсем понятно, зачем json ответа стороннего сервиса превращается в какую-то структуру из ф-строк и таплов - внутри сервиса работаем с жсоном напрямую, в базейку раскладываем по полям. Для удобства можно использовать dataclass, и раскладывать в него жсон
Обработка ошибок - print('Oops'), нужно заменить на что то более вменяемое. Хотя бы 'requested ip adress not found'(если 404 внешнего сервиса означает это). В идеале, написать свои кастомные Exceptions, которые будут логировать различные ответы стороннего сервиса
Простановка тайпхинтов - нужно проставлять возвращаемые типы
Представлю вашему вниманию следующее. Исключительно для размышления.
Вот что я написал руками:
procedure TForm5.ButtonQueryClick(Sender: TObject);
begin
RESTRequest1.Resource := Edit1.Text;
RESTRequest1.Execute; //<- тут выполняется запрос к серверу ip-api
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
FDQuery1.ExecSQL; //<- тут выполняется запрос на создание таблицы, если её нет
end;
Ни строчки более. Вот что мы имеем на выходе:

Все складывается бд, а при старте видим то, что уже запросили
P.S. Zip - это не интовое число, поле может быть текстом
Это project 2. А где project 1? ;)
Project_2. Местоположение с помощью IP-адреса (Python)