Сообщество - Лига программистов
Добавить пост

Лига программистов

1 487 постов 11 352 подписчика

Популярные теги в сообществе:

Cohesion и Coupling: отличия

https://habr.com/ru/articles/568216/

Сегодня посоветую короткую статью, чтобы наконец-то разобраться что есть что.

🛑 Основные моменты

- Нужно стремиться к достижению low coupling (низкой связанности) и high cohesion (высокого сцепления)
- Cohesion — степень, в которой часть кодовой базы образует логически единую атомарную единицу — блок.
- Coupling — степень взаимосвязи между этими блоками.
- Блок здесь необязательно является классом. Это может быть метод, класс, группа классов или даже модуль: понятия cohesion и coupling применимы на разных уровнях.
- Высокий cohesion означает хранение связанных друг с другом частей кода в одном месте.
- Например, мы храним код работы с пользователями в одном месте, и это может быть как стандартный MVC контроллер, так и отдельный микросервис.
- В то же время низкий coupling заключается в максимально возможном разделении несвязанных частей кодовой базы.
- Например, react и react-dom хранятся в разных пакетах, благодаря чему мы можем использовать react-native вместо react-dom и писать нативные приложения.
- В отличие от такого показателя, как цикломатическая сложность, степень cohesion  и coupling не может быть измерена напрямую.


ℹ️ Понятие cohesion похоже на Принцип единственной ответственности, который утверждает, что у класса должна быть одна ответственность, что аналогично тому, что делает код с высоким cohesion. Разница здесь в том, что высокий cohesion необязательно означает, что код должен иметь только одну ответственность. Можно сказать, что Принцип единственной ответственности в этом смысле более строгий.

#essential #fridayreading

https://t.me/cherkashindev/196

Показать полностью

Вы крутые, спасибо за поддержку! (Продолжение "Я стал Ютубером!")

Честно говоря, даже не рассчитывал на такой отклик на мой предыдущий пост. 30 подписчиков на Youtube, ценные комментарии и советы, да и просто слова поддержки!

За эти две недели мне удалось выпустить еще два ролика:
- Техника собеседования STAR (7 минут)
- Третья часть серии "Кодим с chatGPT" (17 минут)

К сожалению, охват моих видео пока не очень большой, хотя видео про STAR приняли очень тепло, судя по лайкам.

На самом деле, затевая эксперимент "Кодим с ChatGPT", я был почти уверен, что сколь-нибудь значимых результатов я не получу. Но похоже, я начинаю сам себя опровергать. Чатбот сумел не просто предложить решение проблемы (например, "сделать форму авторизации"), но и решить абстрактную задачу "сделать форму красивой".

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

Одно могу сказать точно: если бы я писал код с нуля, я бы потратил на него раз в 5 больше времени, с учетом исправления всех ошибок, которые иногда допускает chatGPT.

Ну и немного внутренней кухни (кажется, эта рубрика становится постоянной):

Тема для видеоблога выбрана весьма непростая для новичка, ведь мне недоступна опция "перезаписать видео", если в процессе записи что-то пошло не так. Это же chatGPT, который запоминает контекст. То есть, я:

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

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

Приходится танцевать с бубном. Например, после записи я понял, что у меня был косяк с гарнитурой и звук был фиговый. Пришлось на имеющийся видеоряд с записью экрана накладывать новый аудио-видео ряд с голосом и миниатюрной головой. Это вылилось в адок на монтаже, общее время монтажа 17-минутного ролика составило часов 15. Всё для вас, дорогие будущие зрители :)

Спасибо за поддержку, буду рад новым подпискам на канал и идеям по развитию!

Показать полностью

СКБ Контур. Прошу совета

Всем привет! Прошу совета у тех, кто работает/работал в СБК Контур в качестве разработчика. Планирую пойти к ним на стажировку. Что можете сказать про эту компанию? Как у них с карьерным и профессиональным ростом, с отношением к сотрудникам, с уровнем зарплат?

В Питере шаверма и мосты, в Казани эчпочмаки и казан. А что в других городах?

Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.

Реклама АО «Кордиант», ИНН 7601001509

Первая неделя

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

После я наткнулся на сей пост Дорогу осилит идущий и вступил в телегу. С скачиванием JDK (open) не возникло никаких проблем. Далее идёт lesson 1.

Первая неделя Программирование, IT, Java, Обучение, Мат, Длиннопост

Тут я столкнулся с небольшой проблемкой.

Первая неделя Программирование, IT, Java, Обучение, Мат, Длиннопост

Вы видите, что тут где-то написано, что название public class'а должно совпадать с названием файла? Вот и я не вижу. И из-за этого столкнулся с ошибкой и не мог понять что за хуйня.

Далее идёт материал по переменным, типам данных. Его я прочитал/прослушал.

В конце две практические задачи.

Задача 1

public class Main {

public static void main(String[] args) {

int a = 5;

int b = 10;

// место для вашего кода

System.out.println("Значение а: " + a + ". Значение b: " + b);

}

}

На месте комментария написать код, который присвоит переменной a значение переменной b и наоборот.

Подсказка: можно использовать третью переменную.

Вариант на подумать: реализовать задачу, НЕ используя третью переменную.

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

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

public class Main {

public static void main(String[] args) {

int a = 5;

int b = 10;

int x = -5;// место для вашего кода

System.out.println("Значение а: "x + a + b". Значение b: "x + b);

}

}

И столкнулся вот с такой ошибкой. Я снова обратился к chatgpt и он мне всё объяснил.

Первая неделя Программирование, IT, Java, Обучение, Мат, Длиннопост

Оказывается переменные складываются вот таким образом a = a + c;

Я переписал код:

public class Main {

public static void main(String[] args) {

int a = 5;

int b = 10;

// место для вашего кода

int c = 5;

a = a + c; // а = 10

b = b - c; // b = 5

System.out.println("Znajenie a: " + a + ". Znajenie b: " + b);

}

}

Вроде всё заработало. Значение a теперь 10, b теперь 5

Первая неделя Программирование, IT, Java, Обучение, Мат, Длиннопост

Я посмотрел в разбор практики для урока.

/**

* На месте комментария написать код, который присвоит переменной a значение переменной b и наоборот.

* Подсказка: можно использовать третью переменную.

*/

public class Task1 {

public static void main(String[] args) {

int a = 5;

int b = 10;

// Вводим переменную temp, куда записыванием значение переменной a

int temp = a; //temp == 5

// Присваиваем переменной a значением переменной b

a = b; //a == 10

// Присваиваем переменной и значение temp, куда ранее записали изначальное значение a

b = temp; //b == 5

System.out.println("Значение а: " + a + ". Значение b: " + b);

}

}

Да блядь! Надо было написать код который менял бы a и b местами при любых значениях, а не только a = 5 и b = 10

На чтение/прослушивание материала, написание кода у меня ушло часа 2 может 2,5 и я устал, разболелась голова.

Я решил выпить чайку, взял литровую кружку, насыпал 500 гр. листового чая, ебнул сверху кипятка и выпил. После лёг на кровать и уставился в потолок. И до меня снизошло просветление. Я долбоеб не человек, а тюлень. А тюлени не пишут код. Как любое существо идентифицирующее себя тюленем, я лежал целыми сутками на кровати, залипал в ютубчик и жрал сырую рыбу.Так прошло ещё 3 дня.

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

До скорого, мои человеко собратья.

Показать полностью 3

Chatgpt он такой

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

Chatgpt он такой Индусский код, Программирование, Скриншот, Переписка
Показать полностью 1

Ответ на пост «Так и есть»

В чем самый УЖОС (как по-мне) ватсапа - это если ты чистил телефонную книгу и удалил номер телефона..... Ватсап АВТОМАТИЧЕСКИ удалит всю переписку с этим номером.

Я чистила телефон, удалила давний контакт, с которым уже давно не общаюсь. Но в ватсап естесно была переписка и она тоже удалилась, а там 4000 файлов картинок и тд. Было и больше нет. Просто обидно было потерять такой кусок памяти)

Если стоит резервное копирование - придется удалить ватсап, скачать снова и восстанавливать из копии. Но все видео не восстановятся. ну да, у меня резервной копии не было. Теперь есть)

Апдейт.

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

Про современные тренды в программировании

Про современные тренды в программировании Юмор, IT, Программирование, Ирония, Программист, Длиннопост, Telegram (ссылка), Мат, Скриншот

Источник рассуждения: https://t.me/nikitonsky_pub/662

Показать полностью 1

Конкурс для мемоделов: с вас мем — с нас приз

Конкурс мемов объявляется открытым!

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

Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.

А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».

Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689

Так и есть

Так и есть Скриншот, Технологии, Telegram, WhatsApp, Павел Дуров, Интернет, Программирование, Telegram (ссылка)

Источник: https://t.me/mzungugram/3552

Отличная работа, все прочитано!