[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кликбейт: А чего добился ты?
Страницы: 1, 2
bestxp
В обшем темка такая, многие на этом форуме сидят уже по несколько лет, многие из нас работаем программистами в разной степени компаниях или фрилансеры, много тем пережевано по 40 раз, а кто-то только начинает путь, и для них возможно этот топик будет шпаргалкой на то что посмотреть, я начну с себя,

В свое время на форум я пришел будучи fullstack middle, брал много технологий за раз, и JS, и php и базы данных, много всего и почти ничего, но прекрасно понимал чего я хочу дальше, а дальше я хотел быть backend и расти в этой экспертизе, кстати не скажу что форум мне ничего не дал, даже много чего я себе заметил на форуме, как и софт скиллы, так и немного хард, споры с Twin smile.gif были ожесточенные и полезные, думаю и для него тоже biggrin.gif, ну и что бы дать совет надо самому подумать 40 раз, сделал бы ты это сам или нет smile.gif
Шло время, поработал в разных команиях, и в супер маленькой команде из 4 человек, и супер нагруженных проектах, где собственно сейчас и работаю smile.gif и да я пришел к своей той целе, сейчас уже стоит более огромная цель, крутой архитектор высоко-нагруженных систем, что собственно и делаю, изучаю и общаюсь.

Возможно, постоянная работа в небольшой стабильной компании и хороша, я это попробовал, но работа в супер-бренд компании, с кучей технологий, это супер.

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

1 Есть хорошая ротация логов, с алертингом о проблеме на почту/messenger
2 Вы покрываете метриками все обращения к внешним сервисам
3 Вы имеете настроенный dashboard где можно посмотреть, на то что с сервисом
4 Вы задумываетесь о graceful degradation, что бы сервис продолжил работать, если что-то внешнее вдруг перестало работать
5 После каждого релиза вы обращаете внимание на п3

это наверно не менее важное, чем решение задачи отправки письма smile.gif

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

ps 2 ниже список на тот набор технологий который нужен для ваших проектов, что-бы вам было хорошо

- Prometheus
- Grafana
- Graceful Degradation
- Sentry

Для расширения кругозора

- Docker
- k8s ( Kubernetes ) + Helm

ps 3 Возможно сумбурно, но надеюсь вы поймете месседж smile.gif просто селф-ретро, поделился smile.gif
twin
Цитата (bestxp @ 26.11.2018 - 12:33)
споры с Twin  были ожесточенные и полезные, думаю и для него тоже
Безусловно. Для того они и были smile.gif

Я так понял, ты предлагаешь всем ломануться на микросервисы?)))

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
Нет я предлагаю поделиться опытом и своей историей, выделить то что может пригодится сейчас, нет не алгоритмы, а что-то большее
TMake
у нас примерно такой же набор, но на самом деле можно обойтись bash скриптами)))
Ron
Цитата (bestxp @ 26.11.2018 - 21:26)
Нет я предлагаю поделиться опытом и своей историей, выделить то что может пригодится сейчас, нет не алгоритмы, а что-то большее

Ок, запросто. Изучайте базу (математику, теорию алгоритмов и т.д.), расширяйте свой кругозор. Уделяйте внимание смежным направлениям. В свободное время осваивайте другие ЯП под другие платформы, и чем больше они отличаются от вашего основного, тем лучше.

Ни в коем случае не упирайтесь только лишь в одно направление - это путь в никуда.

Прокаичвайте базу. Во-первых она общая для дофига всего, во-вторых очень медленно развивается/меняется. Польза от нее огромная, но до понимания сего факта нужно дорасти. =)

Мальтиец
Цитата (bestxp @ 26.11.2018 - 16:33)
Вы покрываете метриками все обращения к внешним сервисам

Что за метрики?
То про что в википедии говорится в статье "Метрика программного обеспечения"
bestxp
Цитата (Мальтиец @ 4.12.2018 - 10:41)
Цитата (bestxp @ 26.11.2018 - 16:33)
Вы покрываете метриками все обращения к внешним сервисам

Что за метрики?
То про что в википедии говорится в статье "Метрика программного обеспечения"

Не совсем эти, кстати те что ты указал тоже важны, но я больше про продуктовые, как быстро работает тот или иной участок кода в проде, обвешиваем это метриками и собираем их через прометеус и отображаем в графане например, это очень важно если есть есть внешние зависимости от других сервисов, и тогда ты сможешь уследить что происходит не так, либо например количество отправленных писем, и потом построить график, по baseline на прошлый период, и можно смотреть будет что идет не так, если у тебя вдруг количество отправляемого отличается от нормы резко и продолжительно, и тд, как итог возможность следить за своим приложением, и спрогнозировать его тех развитие

@Ron
ты в чем то прав, но тут скорее надо изучать подходы чем языки, понимая например особенности парралельного программирования, понимание Race состояния в конкурентном коде, и тд, и не важно будет это Go/Java/C/Python или любой другой язык, подход и методика одна, реализация может плюс минус быть разной

Цитата
Ни в коем случае не упирайтесь только лишь в одно направление - это путь в никуда.

Есть совместимое, есть не совместимое, есть смежное, например занимаясь backend, там столько всего, и системное, и драйвера и тд, FE это другое, как ни крути понимание это одно, работать сразу с разными системами это другое sad.gif
Ron
Цитата (bestxp @ 4.12.2018 - 13:23)
тут скорее надо изучать подходы чем языки, понимая например особенности парралельного программирования, понимание Race состояния в конкурентном коде

Полностью согласен. Просто некоторые платформы позволяют прикоснуться к подходам на практике, как бы вынуждают. Под тот же Android, к примеру, там без понимания многопоточности трудно обойтись. И не только Race condition борьба с которой ведет к другим проблемам (deadlock, livelock). Еще масса проблем, в том числе с поиском багов в параллельном коде. Кажется Фаулер советовал по возможности избегать многопоточного программирования.

Цитата (bestxp @ 4.12.2018 - 13:23)
как ни крути понимание это одно, работать сразу с разными системами это другое

Само собой, я как раз про понимание. Понятно что на пике профессиональной формы можно находиться лишь в относительно узком сегменте. Беда некоторых специалистов "новой волны", что они не хотят видеть ничего вокруг своей специализации.
inpost
Вообще очень хорошая вещь - Bitrix. Не для того, чтобы в ней работать, а чтобы в ней изучить то, что должно быть заложено в правила хорошего сайта.

Мониторинг о том, работает ли сайт. Нет - уведомление.
Мониторинг о скорости отдачи файлов, уменьшается в 2-3 раза - уведомление.
Так же о SSL сертификате, когда закончится, о проплате за все сервера и домены, особенно домены, ведь это легко проверяется.

А так, тут ещё важно в каком направлении работаешь. Можно быть крутым и штамповать много сайтов, и тогда нужен какой-нибудь лист "базовые вещи сайта", я себе наброски когда-то делал: https://school-php.com/launch .
А если сайт один или парочку, там уже стоит углубляться в внутренний мониторинг по нагрузке.

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

А расскажите из каких программ и методов должен выглядеть нормальный рабочий процесс? Пытался загуглить - нифига не могу найти толкового, остаётся только уволиться, найти работу в крутой компании и у неё научиться...

Итак, у нас есть команда разработчиков, весь штат.
1) Как они общаются между собой, как разбиваются группы?
2) Где храним задачи каждого? Jira? Всегда отмечаем сроки? Кто определяет эти самые сроки? При старте и остановке отмечаете всегда? Задачи блоками, или дробятся на мелкие?
3) Код документируете кроме PHPDoc конструкций в коде классов? Есть особые документации? Может быть ведёте документацию для заказчика? Как ведёте, как оформляете?
4) Как ведётся процесс разработки в GIT ? У каждого своя ветка, потом тот, кто свой участок сделал запрашивает у Тима, чтобы он ознакомился с кодом и далее прикрепил к основной ветке? Или он прикрепляет к dev ветке? Далее в dev тестирование, а потом уже в основную?
5) Стоят ли автоматические системы выгрузки основной ветки на хостинг, или заливаем вручную? Это команды гита на хостинге выполняются уже основном, или есть другие способы?
6) Каким образом идёт тестирование сделанного кода другим человеком? Заливаем на dev сервер, далее смотрим? Всё ок, жмём выгрузку в основу?
7) Как MySQL данными обмениваются сервер-программисты? Git должен автоматом подгружать файлы и запускать команды по созданию таблиц новых? То есть прописываем правила работы? Если накосячил и не внедрил в проект вовремя ORM, как тут обмениваться актуальной базой?
8) Запросы идут на страницы дизайнеру, дизайнер выполняет, куда потом выгружать страницы? В ту же кашу в Jira из сотни задач? Или какая-то схематическое существует распределение задач/выполненных задач по дизу в формате:
- главная
__ - модалка авторизации на главной
__ - модалка регистрации на главной
- Профиль
- - Профиль / редактирование профиля

Структурирование, схематическое распределение.
9) Верстальщику даём задачу на верстку всех страниц, как он отмечает? Надо, снова же, в jira на каждую страницу отдельный TASK создавать?
10) На основе запускаем почту, как следим за почтой, как убираем из базы некорректные ящики? Последнее время стал пользоваться платным сервисом, который проверяет есть ли такой ящик. Но как перехватывать если отправили нас в спам, заблокировали? Создали мы корпоративную почту на mail.ru , там в отдельную папку я поместил ответы, что нет писем. Далее по SMTP подключаюсь и перебираю эту папку с письмами, если какие не дошли - у нас на сайте отключаю уведомления этому пользователю. Выглядит кривовато, всегда надо держать пароль от почты, так же на мейле криво работает API получения писем, когда оборот большой и ты удаляешь и новые доходят. Может есть какой-то более грамотный способ это всё организовать?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
VeRTak
Цитата (inpost @ 5.12.2018 - 04:33)
Мониторинг о том, работает ли сайт. Нет - уведомление.
Мониторинг о скорости отдачи файлов, уменьшается в 2-3 раза - уведомление.
Так же о SSL сертификате, когда закончится, о проплате за все сервера и домены, особенно домены, ведь это легко проверяется.


Не разу не заглядывал в битрикс, у нас забикс с этим хорошо справляется smile.gif

Цитата (inpost @ 5.12.2018 - 04:33)
А если сайт один или парочку, там уже стоит углубляться в внутренний мониторинг по нагрузке.


Так же забикс
Цитата (inpost @ 5.12.2018 - 04:33)
1) Как они общаются между собой, как разбиваются группы?


Скайп

Цитата (inpost @ 5.12.2018 - 04:33)
2) Где храним задачи каждого? Jira? Всегда отмечаем сроки? Кто определяет эти самые сроки? При старте и остановке отмечаете всегда? Задачи блоками, или дробятся на мелкие?


Редмайн, трудозатраты обязательно + оценки задач, сами и определяем эти сроки. Каждая задача имеет свой статус. Если задача крупная и не входит в недельный план, тогда да дробим ее на подзадачи.

Цитата (inpost @ 5.12.2018 - 04:33)
4) Как ведётся процесс разработки в GIT ? У каждого своя ветка, потом тот, кто свой участок сделал запрашивает у Тима, чтобы он ознакомился с кодом и далее прикрепил к основной ветке? Или он прикрепляет к dev ветке? Далее в dev тестирование, а потом уже в основную?


Да в git, у каждой задачи своя ветка, в остальном все этом потоке, сначала на дев для тестов, потом перенос на продакшен

Цитата (inpost @ 5.12.2018 - 04:33)
5) Стоят ли автоматические системы выгрузки основной ветки на хостинг, или заливаем вручную? Это команды гита на хостинге выполняются уже основном, или есть другие способы?


Хуки, можно web хуки

Цитата (inpost @ 5.12.2018 - 04:33)
6) Каким образом идёт тестирование сделанного кода другим человеком? Заливаем на dev сервер, далее смотрим? Всё ок, жмём выгрузку в основу?


Team city и прочее


Цитата (inpost @ 5.12.2018 - 04:33)
7) Как MySQL данными обмениваются сервер-программисты? Git должен автоматом подгружать файлы и запускать команды по созданию таблиц новых? То есть прописываем правила работы? Если накосячил и не внедрил в проект вовремя ORM, как тут обмениваться актуальной базой?


В ларавеле есть миграции класные, а так как вариант прикреплять sql файл с изменения типа ALTER TABLE ...

Цитата (inpost @ 5.12.2018 - 04:33)
8) Запросы идут на страницы дизайнеру, дизайнер выполняет, куда потом выгружать страницы? В ту же кашу в Jira из сотни задач? Или какая-то схематическое существует распределение задач/выполненных задач по дизу в формате:
- главная
__ - модалка авторизации на главной
__ - модалка регистрации на главной
- Профиль
- - Профиль / редактирование профиля


Вроде как все удобно, нашел старую задачу, посмотрел по ней все и ничего лишнего

Цитата (inpost @ 5.12.2018 - 04:33)
9) Верстальщику даём задачу на верстку всех страниц, как он отмечает? Надо, снова же, в jira на каждую страницу отдельный TASK создавать?


Тут наверное от ситуации зависит

Цитата (inpost @ 5.12.2018 - 04:33)
10) На основе запускаем почту, как следим за почтой, как убираем из базы некорректные ящики? Последнее время стал пользоваться платным сервисом, который проверяет есть ли такой ящик. Но как перехватывать если отправили нас в спам, заблокировали? Создали мы корпоративную почту на mail.ru , там в отдельную папку я поместил ответы, что нет писем. Далее по SMTP подключаюсь и перебираю эту папку с письмами, если какие не дошли - у нас на сайте отключаю уведомления этому пользователю. Выглядит кривовато, всегда надо держать пароль от почты, так же на мейле криво работает API получения писем, когда оборот большой и ты удаляешь и новые доходят. Может есть какой-то более грамотный способ это всё организовать?


Тут не совсем понял, с маниторингом опять же забикс справляется, что касается получение самих писем тогда IMAP
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.