Pull to refresh

Comments 38

Вы бы хоть введённый IP на валидность regexp'ом проверяли, прежде чем скармливать что попало стороннему API. Да и коды ошибок в HTTP бывают другие, кроме 404...

P.S. Мне казалось, что статья про написание очередного hello world интересна разве что если это hello world на каком-то экзотическом языке :) А тут ещё и уровень "средний" - что же тогда "лёгкий"?..

Не имею желания расписывать подробный ответ, но могу сказать точно, что ваш комментарий полезен для меня. Так как я являюсь начинающим программистом, комментарии, которые указывают на недочёты, ошибки - это топ. Если говорить про ориентиры для разных уровней сложностей, то, возможно, мне нужно будет пересмотреть их.

Дорогу осилит идущий, а программирование освоит решающий!

Это все прекрасно, но зачем на Хабр? 99% из прочитавших статью просто потеряли свое время

  1. Русскоязычный;

  2. Блог на Хабре будет плюсом, когда начну устраиваться на работу;

  3. Нравится сама площадка.

Блог на Хабре будет плюсом, когда начну устраиваться на работу;

Почему вы так решили? Вы разве нанимаете? Конкретно такой текст будет скорее минусом (и да, я нанимаю).

Не нанимаю, но читаю разных работодателей. Это не последний текст, проект, который собираюсь писать. Если в будущем работодатель будет смотреть на самую первую статью, один из самых первых проектов и считать это как за минус, то для меня это покажется странным

Вам может показаться что угодно — но работодателя это не волнует. Не, ну минусом это вряд ли будет — я преувеличиваю, но плюсом тоже вряд ли. В чем плюс-то? Что вы решили тривиальную задачу, которая должна решаться на работе по штуке в день в нормальном рабочем режиме? Ну да, вы продемонстрировали, что вы что-то умеете (в том числе — как-то описывать свою работу). Ну не минус конечно… но вот знаете, мы уже с месяц примерно ищем разработчика. И проблема в том, что все попадающиеся — на одно лицо. Их как будто выпускала одна автоматическая линия — они знают все одно и тоже, и в резюме пишут это же. Только названия компаний отличаются. При этом они все люди с каким-то но опытом, иногда даже большим, но никто из них не выделяется ровным счетом ничем.


Ну вот и тут примерно так же — выделиться из массы подобный текст не позволит. Ну во всяком случае — как по мне. Но пробовать дальше конечно стоит.

Если читать ваш комментарий, то сразу появляется вопрос. А как выделиться из массы?

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

Я не знаю идеальных решений, но предложу 3 варианта - 1) брать околоновостные темы - например, вышла новая библиотека/фреймворк/технология и разобраться в ней, описать важные моменты, можно сделать это в виде грамотной компиляции из нескольких источников 2) перевод или компиляция переводов 3) на форумах/в чатах описать свой бэкграунд, желаемую область развития и попросить более опытных коллег набросать тем, которые можно разобрать, изучить и по которым можно написать статью.

А вы думаете я знаю? На моем уровне (а я 45 лет программирую) это точно так же сложно. Все иначе — но выделиться все равно проблема.

Работодателю будет достаточно GitHub, а статья на хабре уйдёт в минус, потому что не представляет из себя ничего полезного. Код на гите вы сможете совершенствовать (а здесь есть что совершенствовать). Здесь же в нём нет никакого смысла

UFO landed and left these words here

Прежде чем начать писать нужно очень, очень, очень много читать :)

Не обязательно. Самое главное что мотивы для написания были не деньги а интерес и желание рассказать что нибудь интересное.

Я новичок и мне понравилось! Давайте ещё! )

UFO landed and left these words here

Не очень понятно для меня данное утверждение, но ладно

"Не понятность" тут заключается в том, почему это будет более полезным

Потому что это автономно. Не уверен, полезнее ли это или нет — у каждого варианта есть свои плюсы и минусы. Но то что это другое решение — точно.

Дошёл до той статьи, где моя "Не понятность" отпала

UFO landed and left these words here

питон не в тренде. на питоше только на смузи хватит. даешь раст.

а так mmdblookup и grep в руки

А мне понравилось. Простенькое не напряжное упражнение :-)

А какой смысл вообще искать город)))? разве что от нечего делать? Причем в начале статьи написать что, точность очень низкая))) Вот чисто практически?

Я вообще ни разу не программист но должно быть практическое применение, что бы на это тратить время)

Немного не в тему )

Прочитал кучу статей про NFC метки и так не нашел реально полезного применения, что бы замудриться с покупкой программатора!!! У кого есть идеи с удовольствием почитаю ))

Про гостевой ВФ можете сразу не писать))

Прочитал кучу статей про NFC метки и так не нашел реально полезного применения

загран паспорт новый, который на 10 лет. (про старого образца уже не скажу). даже flipper zero какие-то циферки оттуда читает. шесть групп по два hex-символа, кажется.

Чем Вам это помогло?) тем что сосед со смартом может его прочитать?))

хотелось бы что-то для людей) а не для банков и пограничников)

ладно. банальные пропуска на работу сгодятся?

Целая кучка bad practises, во некоторые из них:

  1. Нейминг функций/методов - location нужно переименовать в get_location, например. Чтобы было понятно, что это не какой-то объект, а запрос получения данных. database.base - нужно переименовать в database.write (например)

  2. Создание таблицы должно происходить отдельно от запросов в нее. Например, при старте приложения создаётся таблица, далее создаётся объект базы, в котором есть методы подключения к базе, отключения от базы (или контекстный менеджер) и метод для осуществления запроса.

  3. Не совсем понятно, зачем json ответа стороннего сервиса превращается в какую-то структуру из ф-строк и таплов - внутри сервиса работаем с жсоном напрямую, в базейку раскладываем по полям. Для удобства можно использовать dataclass, и раскладывать в него жсон

  4. Обработка ошибок - print('Oops'), нужно заменить на что то более вменяемое. Хотя бы 'requested ip adress not found'(если 404 внешнего сервиса означает это). В идеале, написать свои кастомные Exceptions, которые будут логировать различные ответы стороннего сервиса

  5. Простановка тайпхинтов - нужно проставлять возвращаемые типы

Ваш комментарий уж точно заставит меня снова залезть в код и пересмотреть его. Благодарю за такие комментарии!

UFO landed and left these words here

Представлю вашему вниманию следующее. Исключительно для размышления.

Вот что я написал руками:

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 - это не интовое число, поле может быть текстом

Поправка. Эта строчка не нужна) RESTRequest1.Resource := Edit1.Text;

Sign up to leave a comment.

Articles