Макс из Софи – Telegram
Макс из Софи
9.96K subscribers
1.25K photos
55 videos
7 files
913 links
Автоматизировал поиск работы - https://sofi-assistant.com/landing/

Написать мне в лс: @maxim_primak

№ 4988474654
Download Telegram
Как будут проходить «код-ревью сессии»?

С сегодняшнего дня каждый желающий может прислать через эту форму, ссылку на свой ПР или коммит. Сделать это можно публично или анонимно. Подробнее читать тут. Важно, чтобы это был открытый репозиторий на GitHub!

Потом я опубликую ссылку на ваш коммит или ПР, и в течение 72 часов у каждого будет возможность оставить своё ревью, а также поставить 👍 за толковый комментарий другого ревьюера или наоборот 👎, если вы посчитали его неуместным. Всё это будет проходить на GitHub.

Также я призываю исключить токсичные или оценочные комментарии: код хороший/плохой/говно и тд. Уважайте друг друга.

А после этого мы подведём итоги уже на нашем канале.

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

На данный момент мне скинули 3 репозитория на 3 разных языках: Java, Swift и Python. Очень бы хотелось увидеть репозитории и на других языках! Я знаю, что у нас есть очень много людей, кто пишет на JS, PHP и GO. Если вы хотите отдать свой код на ревью, но по какой-то причине еще этого не сделали, то напишите мне, и мы попробуем что-то придумать.

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

И последнее: я прошу участников добавить README.md с описанием проекта: что он делает, какая его основная задача и тд., и по возможности добавить описание для вашего пулл-реквеста: что именно делает основная фитча этого пулл-реквеста?

Жду ваши репозитории! 🌚
Начинаем нашу первую ревью сессию!

За последнюю неделю вы прислали мне около 10 разных репозиториев на разных языках.
Теперь нам предстоит выбрать тот язык, который и получит ревью на следующей сессии. Правила, как вы знаете, простые. У вас есть 48 часов, чтобы отдать свой голос за тот язык, который бы вы хотели поревьюить.

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

А дальше у нас будет 72 часа, чтобы оставить свое ревью. Лично мой фаворит - это проект на PHP & Laravel, так как уж очень хочется самому поучаствовать в ревью 🙂

Поехали!

#код_ревью_сессия
Макс из Софи pinned «Выбирай язык!»
Небольшой апдейт по проекту.

Пока вы выбираете, какой язык попадет на нашу ревью сессию, я хотел бы рассказать об итогах каст-дева, который я проводил на позапрошлой неделе.

Хотел бы поблагодарить каждого, кто откликнулся на мой пост. Вы играете огромную роль в создании этого приложения!

Я успел провести 20 встреч в зуме, со всеми познакомиться и расспросить каждого о наболевшем. Это очень сильно помогло мне понять картину: кто и как будет пользоваться этим приложением.

Сейчас мы пытаемся решить проблему связанную с NDA. Многие просто не могут показать свой код другим разработчикам. И скорее всего эта проблема должна решаться через диалоги с тим-лидами.

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

Если у вас есть выход на знакомого тим-лида, или же вы сами тим-лид, который заинтересовался этой идеей, то напишите мне на @max_primak. Я был бы очень вам благодарен!
Результаты голосования.

Более 450 человек приняло участие в голосовании и около 200 человек (47%) проголосовало за PHP. Это круто, так как у нас есть целых два коммита от разных разработчиков.

Завтра днем выйдет пост, в котором будут ссылки на эти коммиты на Github, с небольшим описанием ключевых классов и методов.

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

У нас будет 72 часа, чтобы оставить свое ревью и оценить ревью других людей (👍/👎).

Затем мы подведем результаты сессии, где увидим и разберем ревью, которые набрали больше 👍.

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

Но что делать тем, кто проголосовал за другой язык?

1) Все равно принять участие в ревьюенге, если вы этого хотите.

2) Дождаться следующей ревью сессии, на которой мы разберем уже другой язык.

#код_ревью_сессия
Код-ревью сессия #1 🧑‍💻

Ну что же, мы начинаем нашу первую сессию. (немного волнуюсь.)

👉 Коммит #1

Первый коммит прислал нам Rustam. Проект написан на PHP + Laravel. Это открытая CRM, которая облегчает работу с клиентами, позволяет вести проекты и создавать таски.

Основное ревью будет по TaskController (CRUD тасков в приложении) и ClientController (CRUD клиентов). В нем также будут классы типа ClientStoreRequest или TaskStoreRequest, которые отвечают за валидацию реквеста.

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

👉 Коммит #2

Следующий коммит нам прислал Wterh. Реальный пример из его проекта (биржа копирайтинга), который написан на чистом PHP. В нем всего один файл с одним методом, который отвечает за поиск свободных ссылок в базе, и если их нет, генерирует новую ссылку. Используется при изменении статуса задания.

Все вопросы по ходу сессии можете задавать в нашем чате.

#код_ревью_сессия #php
Друзья, напоминаю!

Осталось меньше 24 часов, чтобы еще успеть оставить свое ревью на коммит#1 на PHP + Laravel и коммит#2 на PHP, а также проголосовать за понравившиеся вам комментарии (👍/👎). Вся инфа в посте выше.

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

P.S
Накидайте ребятам звезд на их проекты на гитхабе за то, что они первые решились отдать свой код п̶о̶д̶ ̶о̶б̶с̶т̶р̶е̶л̶ на ревью, им будет приятно.

#код_ревью_сессия #php #laravel
Итоги первой код-ревью сессии. 🚀

🙏 Ребят, хотел бы поблагодарить всех, кто принял участие в нашей сессии.

Отдельное спасибо Rustam и Wterh, что первыми прислали свои коммиты на ревью. Также огромный респект тем, кто уделил свое время и оставил ребятам ревью на их код. Надеюсь, что это было полезно для всех.

В общей сложности около 20 человек оставили более 103 комментариев, просто анрил!

Лично я остался очень доволен тем, как все прошло. Думаю мы получили максимально возможное количества фидбэка.

✌️Вот список всех, кто оставил свои комментарии

Pingvi
nilBora
karabash22
inspierens
ObuhovToplyvoApp
R1KO
maxprimak
SnusnumrConceit
AndreyGel
AndreyZakhvatoshin
yakoffka
muyassarov
LeftTwixWand
andrew-demb
lis-dev
QoreCode
valeriy-bendatiy-toplyvo
Ckoetael
UshakovOleg

ℹ️ Чуть позже я выложу два поста с итогами и разбором комментариев по каждому из коммитов.

🔥 Накидайте, пожалуйста, свою реакцию ниже, чтобы я понимал, насколько вам зашел подобный формат, и в правильном ли направлении мы двигаемся!
👉 Коммит #1

💬 Основной посыл комментариев:

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

2. Использование встроенных функций Laravel.
RouteBinding, $request->validated(), protected $casts и $perPage в модели, return withSuccess() и тд.

3. Обработка ошибок.
Добавление кастомных Exceptions позволит точно понять юзеру, что именно пошло не так.

4. Локализация.
Использование Localization в Laravel позволит удобнее использовать и хранить переводы.

5. Стили.
Придерживаться одной стилистики написания кода (пробелы, отступы, и тд.).

6. Уменьшить объем коммитов.
1 Коммит = 1 фитча. Такой подход позволит быстрее релизить функции и упростит процесс code review.

7. Сервисы.
Добавление отдельных сервисов и вынесение некоторой логики из контроллеров.

🏆 Хотел бы выделить следующих ревьюеров:

1. nilBora - за комментарий набравший 7 👍
2. SnusnumrConceit - за очень информативные и подробные комментарии.
3. R1KO - за активность и количество комментариев.
👍1
👉 Коммит #2

💬 Основной посыл комментариев

1. Разделить код.
Большой метод сложен для понимания. Лучше разделить его на несколько небольших функций.

2. Точные параметры функции.
В функцию лучше передавать конкретные параметры, с которыми она взаимодествует.

3. Одна обязанность метода.
Каждый метод должен отвечать за одну конкретную функцию. Метод getLinks должен возвращать ссылки, а не искать их.

4. Точный результат работы метода.
Метод должен возвращать результат одного типа. Boolean/int/void и тд.

5. Код не должен повторяться.
Если один и тот же код встречается несколько раз, то значит его нужно выделить в отдельный метод.

6. Декларирование переменной.
Задавай переменные непосредственно перед их использованием, а не в начале метода.

7. Стиль и читаемость.
Понятные комментарии, там где они нужны. Точное название переменных и функций.

🏆 Хотел бы выделить следующих ревьюеров

1. lis-dev - за структурированные комментарии с ссылками.
2. QoreCode - за большой объем подробных комментариев с примерами.
Как часто стоит проводить код-ревью сессии?
Anonymous Poll
36%
Два раза в неделю
55%
Раз в неделю
7%
Два раза в месяц
3%
Раз в месяц
Были ли комментарии от ревьюеров вам полезны?
Anonymous Poll
59%
Да
10%
Нет
32%
Я их не видел
Крутые новости! 🔥

📊 Мы вводим свою рейтиноговую систему.

Ревьюеры теперь смогут видеть свой рейтинг и свое место в общем списке. В таблицу ревьюеры будут попадать автоматически после того, как оставят свой первый комментарий.

🧮 Как будет считаться рейтинг?

Рейтинг = кол-во сессий + кол-во коммитов + кол-во комментариев + кол-во лайков - кол-во дизлайков + (отмечен админов x 5).

Таким образом, если вы приняли участие в 2 сессиях, оставили ревью на 5 коммитов, написали 12 комментариев, получили 25 лайков и 3 дизлайка и были выделены 2 раза админом канала, то ваш рейтинг будет равен 51.

2 + 5 + 12 + 25 - 3 + (2 x 5) = 51

🏆 Что дает рейтинг?

Мы сделаем общий призовой фонд, в который я раз в месяц буду закидывать 25$, и каждый из вас сможет также пополнять этот фонд в течение месяца. В конце месяца ревьюер, занявший первое место в ежемесячном рейтинге, заберет призовой фонд.

Ежемесячный рейтинг будет обнуляться в начале каждого месяца.

Чем выше будет ежемесячный фонд, тем лучше будет качество ревью.