Codica - корисне про IT
2.02K subscribers
2.46K photos
124 videos
11 files
1.31K links
Привіт, друже, це канал про корисності в ІТ🤘

🔺Даємо практичні матеріали з RoR, JavaScript, QA, DevOps
🔺Розкажемо як знайти першу роботу без хвилювань та проблем

✍️Для звʼязку-@klimenko_nataly

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
Що таке Dockerfile

📌 Dockerfile — це простий текстовий файл, який містить інструкції зі створення Docker образів.

Нижче наведено синтаксис Dockerfile👇

▪️ Синтаксис

# comments
command argument argument1...

▪️ Приклад

# Print "Get Certified. Get Ahead"
RUN echo -e "Get Certified. Get Ahead"

#codica_tech
🔥7👍3
Список Docker команд для створення Dockerfile👇

👉 FROM - створює шар з ubuntu:18.04
👉 RUN - будує ваш контейнер
👉 CMD – визначає, яку команду виконувати в контейнері

Нижче наведено приклад докер-файлу з важливими командами 👇

FROM ubuntu:18.04
COPY. /file
RUN make /file
CMD python /file/file.py

🔗 Детальніше про різницю між CMD та ENTRYPOINT дивіться у відео.

Розгляньмо деякі з найпоширеніших команд Docker, які використовуються під час створення файлів docker 🔍

🔹 Основна мета CMD — надати параметри за замовчуванням для виконуваного контейнера.

🔹 ENTRYPOINT дозволяє зробити контейнер, який буде працювати як виконуваний файл.

ENTRYPOINT application "arg, arg1"
ENTRYPOINT echo "Hello, $name".

🔹 Команда COPY допомагає копіювати дані в образ Docker.

COPY [--chown=<user>:<group>] /[source]/[destination]

🔹 ENV надає значення за замовчуванням для змінних, до яких можна отримати доступ у контейнері.

ENV <key>=<value>

#codica_tech
👍11🔥5
Мій мозок у п'ятницю ввечері 😅

#codica_humor
😁32👍3👏1
Всім гарного недільного дня, ловіть невеличкий дайджест новин зі світу IT від @Mister_Cody 🐾

💸 Зарплати українських тестувальників — зима 2023.

🥷 Хакери вкрали вихідний код League of Legends та виставили його на аукціон.

🧑‍🎓 За підтримки Мінцифри Google продовжує освітню програму в Україні.

🕵️ Зʼявився слід найбільш розшукуваної жінки у світі, «криптокоролеви», яка вкрала в інвесторів $4 млрд.

😠 Гроші не пахнуть: Xiaomi та Honor повертаються на росію.

👀 Масові звільнення в IT: чому американський техноринок штормить і що про це говорять цифри.

🔎 У мережу злили доступ до повного вихідного коду всіх ключових сервісів «Яндекса».
👍7🔥3
Доброго ранку та гарного тижня 🌞

#codica_ruby
5🥰1
Як правильно звернутись до елементу даного хешу?
Anonymous Quiz
27%
buildings[:s]
5%
buildings[0]
26%
buildings["s"]
9%
buildings[":s"]
14%
buildings["school"]
18%
Не знаю
👍6🔥3
KISS, DRY, S.O.L.I.D, YAGNI — навіщо дотримуватися принципів програмування? 🤔

💻 В програмуванні є багато різних принципів, підходів та патернів. Всі вони полегшують процес розробки для самих інженерів та допомагають писати якісний код. То ж поговоримо про основні такі принципи.

▪️KISS — Keep it simple, stupid
Основна ідея принципу KISS — чим простіше, тим краще, щоб кожен розробник зміг зрозуміти, що відбувається у класах та методах. Звідси випливає дві тези:

✔️ Keep it short and simple — коротко і просто.
✔️ Keep it simple and straightforward — просто і зрозуміло.

#codica_tech
👍112🔥2
▪️DRY — Don't repeat yourself
Основне завдання — зменшити кількість коду, що повторюється. Не повністю прибрати його, а саме зменшити його кількість. Частина коду має бути реалізована лише в одному місці.

🤔 Що ж робити, якщо при спробі не повторювати код, ви бачите, що порушуєте принцип DRY? Можливо, краще повторити код у двох місцях, але при цьому Single Responsibility принцип не порушити. Або ж можна розділити код на дві або три частини та використати ці частини окремо. Все залежить від ситуації.

▪️S.O.L.I.D.
Це найцікавіший з усіх принципів та найкорисніший. А якщо точніше, то це набір принципів, спрямованих на допомогу розробникам для створення чистого, добре структурованого коду, який легко підтримувати.

S — Single Responsibility Principle
O — Open-Closed Principle
L — Liskov Substitution Principle
I — Interface Segregation Principle
D — Dependency Inversion Principle

📌 SOLID — це набір принципів об’єктно-орієнтованого програмування, які представив Роберт Мартін (дядько Боб) у 1995 році. Їхня ідея в тому, що треба уникати залежностей між компонентами коду. Якщо є велика кількість залежностей, такий код важко підтримувати (спагеті-код). Його основні проблеми:

🖇 жорсткість (Rigidity): кожна зміна викликає багато інших змін;
🖇 крихкість (Fragility): зміни в одній частині ламають роботу інших частин;
🖇 нерухомість (Immobility): код не можна повторно використати за межами його контексту.

💁‍♂️ Природно, що з розвитком системи зростає її складність. Важливо завжди тримати цю складність під контролем. Інакше може виникнути ситуація, коли додавання нових фіч, навіть не дуже складних, обійдеться занадто дорого. Деякі проблеми повторюються особливо часто. Щоб їх уникати, було розроблено принципи проєктування. Якщо будемо їх дотримуватися, то не допустимо лавиноподібного підвищення складності системи. Найпростішими такими принципами є SOLID.

▪️YAGNI — You aren't gonna need it
Перед тим, як щось реалізувати, треба подумати, а чи потрібно воно мені зараз. Так, ви можете все продумувати, вирішувати, як усе буде в майбутньому, але коли ви сідаєте реалізовувати певну задачу, вона має виконувати рівно те, що вам треба в цей момент часу. Не треба створювати методи, які можуть бути потрібними в майбутньому.

☝️ 90% коду, який пишеться на майбутнє, не працює. І з часом він лише погіршує розуміння вашого коду, бо інші не розуміють ваші методи та для чого вони потрібні. Бізнес-вимоги можуть змінюватися досить швидко, і те, що здається потрібним, завтра вже може бути неактуальним.

Потрібно думати про те, що буде з вашим кодом в майбутньому, але при самій реалізації варто виконувати те, що має бути реалізовано саме сьогодні. Не реалізовувати те, що не потрібно. Чим менше коду, тим менше багів 😉

#codica_tech
👍153🔥2
Codica - корисне про IT
Що таке Dockerfile 📌 Dockerfile — це простий текстовий файл, який містить інструкції зі створення Docker образів. Нижче наведено синтаксис Dockerfile👇 ▪️ Синтаксис # comments command argument argument1... ▪️ Приклад # Print "Get Certified. Get Ahead"…
Що таке Образ Docker (Docker Image) 🤔

📌 Docker Image — це блок, створений за інструкцією з Dockerfile, що виступає шаблоном запуску контейнерів. За допомогою цього документу можна побудувати безліч однакових контейнерів.

👉 Припустимо, ви створюєте один шаблон, який має встановити Python і певні залежності на нього, і вам потрібно п’ять однакових контейнерів. У такому випадку не потрібно прописувати п’ять Dockerfile. Достатньо одного такого файлу для створення Docker Image, який ви будете ранити п’ять разів.

☝️ Для стандартизації образів було створено OCI (Open Container Initiative).

👀 Пам'ятаєте, ми розповідали про те, що є deamonless альтернативи докеру? На це є ціла низка причин. Щоб створити образ, нам потрібно запускати docker build, а якщо є docker build, значить, є і docker deamon та інші команди докера. Отже, є дуже багато доступів. Щоб уникнути цих ризиків, є deamonless і rootless рішення. Один з них, наприклад, BuildKit.

#codica_tech
👍63🔥2❤‍🔥1
Основні команди Docker Image 👇

При роботі з Docker Image виділяють декілька найбільш використовуваних команд:

▪️ docker image -- help. Показує основні команди в Image з їхнім коротким описом.

▪️ docker image build [OPTIONS] PATH. Білдить сам Image для подальшого запуску Container. За допомогою цієї команди ви можете назвати свій Image. Для цього додайте тег -t, а за ним вкажіть бажану назву. Вам залишається прописати шлях до директорії. Після запуску команди і почне будуватися Image: від створення директорії, встановлення всіх залежностей та підготовки до запуску.

▪️docker image inspect [OPTIONS] IMAGE. Ця команда видає всю інформацію про Image. Це можуть бути ID, дата створення, пов’язані контейнери та енвайронменти, версія Python, наявні pip і get pip, CMD і ENTRYPOINT, Volumes, директорії тощо. При запуску команди вказуйте назву Image, який вас цікавить.

▪️docker image ls -a. Показує список усіх Image, які є в Docker.

▪️docker image rm [OPTIONS] IMAGE. Призначена для видалення Image.

#codica_tech
👍93🔥3❤‍🔥1
Доброго ранку та гарного дня всім 🌞

#codica_js
5🥰3❤‍🔥1
Закон Паркінсона та як його порушити 👀

▪️Перший закон Паркінсона говорить: «Робота заповнює весь час, відпущений на її виконання».

📰 Британський воєнний історик та журналіст Сіріл Норткот Паркінсон висунув таку теорію у 1955 році в журналі Economist. У своєму сатиричному нарисі він пояснив, чому люди нічого не встигають. Адже часто швидкість виконання завдання залежить від дати дедлайну.

👉 Паркінсон у публікації навів приклад літньої жінки, яка пише лист своїй племінниці і витрачає на нього цілий день, хоча зайнятий джентльмен може написати його за три хвилини. Саме тому, що жінка не має інших справ, вона може дозволити собі витратити цілий день на таке просте завдання. У публікації Паркінсон перш за все приділив увагу бюрократизації британської державної служби.

Він навів також дві аксіоми:
▪️чиновник прагне множити підлеглих, а не суперників;
▪️чиновники створюють роботу один одному.

#codica_advice
👍82👏1👀1
🔖 Паркінсон також є автором решти популярних тверджень: «Витрати ростуть з доходами», «Розширення означає ускладнення, а ускладнення – це кінець шляху», «Кількість працівників у групі має тенденцію до зростання, незалежно від того, який обсяг роботи необхідно виконати» та ін.

☝️Проте саме перший закон Паркінсона найбільш відомий і лежить в основі боротьби з прокрастинацією.

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

Як цього можна уникнути

1️⃣ Не думай за всіх

👉 Не чекай, що хтось виявить повагу, якщо ти не виявляєш її сам. Хочеш, щоб команда відповідально ставилася до термінів та роботи загалом – намагайся отримати реальний комітмент, а не вимушену згоду.

2️⃣ Не став термін «вчора»

👉 По-перше, це всіх нервує, а ти не хочеш працювати серед психопатів. По-друге, встигнути «вчора» неможливо, а отже терміни зірвуться.

3️⃣ Не намагайся досягти 100% завантаження

👉 Для 100% завантаження (насправді ні) ми вигадали машини, а людині потрібно відпочивати. А ще розвиватися та витирати пил з клавіатури.

4️⃣ Після дедлайну не настане кінець світу

👉 Затримки все одно траплятимуться і це нормально.

5️⃣ Не потрібно фіксувати все

👉 Не треба малювати міфічний трикутник обмежень та намагатися втиснути в нього свій проєкт.

5️⃣ Не заохочуй мультизадачність

👉 По-перше, це непродуктивно. По-друге, кожен вирішує своє оптимізаційне завдання.

6️⃣ Не тягни з аппрувом

👉 Серйозно. На роботу йде 2 дні, а потім ще 2 тижні чекати, поки менеджер/замовник подивиться і дасть виправлення. А потім дивуємося, чому всі тягнуть до дедлайну.

7️⃣ Уникай великого вибуху

👉 Працюй інкрементально. Не факт, що робота стане швидшою, але, принаймні, ти зможеш щось використати, не чекаючи на щось інше місяцями.

9️⃣ Не роздувай команду

Якщо не хочеш бути як британські чиновники 😄

#codica_advice
👍102🔥1🌚1
8 міфів про харчування 🍽

#НапуттяВід_HR Директорки Клименко Наталії

👀 Друзі, давно ми не мали статей на тему їжі.

Сьогодні пропоную пройтися міфами, які нам нав'язували з дитинства, і наші батьки продовжують це робити 😅 ну мої так точно...

💁🏻‍♀️ Часто чули таке – у кожен прийом їжі має бути гаряче, без рідкого живіт заболить, не запивай їжу, а то шлунок розтягнеш? Давайте з цим розбиратися.

Розвінчуємо головні міфи 👇
👍42🙈1
Міф 1️⃣

🍲 Потрібно щодня їсти суп, бо це “рідке” та “гаряче”

👉 Відповідь: у супі є вода, м'ясо, овочі. Таким чином, якщо ви щодня в достатній кількості їсте білок, крупи та клітковину, їсти суп зовсім не обов'язково. Навіть щодня, навіть можна прожити без нього.

Міф 2️⃣

💧 Не можна запивати їжу водою

👉 Відповідь: вода не має жодного поганого впливу на травлення. Запиваючи їжу водою, ми робимо її більш рідкою і допомагаємо їй плавно рухатися по стравоходу. Особливо це добре допомагає тим, хто поспішає або не вміє ретельно пережовувати їжу.

Міф 3️⃣

🧈 Вживайте знежирені продукти

👉 Відповідь: для того, щоб продукти стали знежиреними, вони повинні пройти багато етапів обробки, і через це користь від них стає набагато меншою. Внаслідок обробки виробники замінюють смакові якості знежирених продуктів великою кількістю цукру, спецій, рафінованих продуктів. Більше того, що менше жиру в їжі, то менш насичений смак отримує продукт. Менше смаку - менше задоволеня від їжі.

Міф 4️⃣

🍍 Їж продукти, які спалюють жири

👉 Відповідь: у природі не існує продуктів, які ви будете їсти і худнути. Худнути можна від будь-якого продукту, якщо знати міру та розуміти їхні властивості. Настав час усвідомити, що спалюють жири не продукти, а регулярні тренування і дефіцит калорій.

Міф 5️⃣

🥛 Молочні продукти для дорослих шкідливі

👉 Відповідь: з віком потреба у великій кількості молочних продуктів відпадає, це правильно. Проте загалом молочні продукти це величезне джерело кальцію. І якщо у людини немає жодних протипоказань у здоров'ї, можна вживати, ні про що не турбуючись.

Міф 6️⃣

🥪 Перекушувати це шкідливо - перебиваєте апетит

👉 Відповідь: перекушувати не шкідливо, якщо ви робите це свідомо. Вся шкода для фігури і травлення полягає в тому, що людина їсть автоматично, не враховуючи калорійність і корисність продукту і взагалі не рахуючи це їжею.

Міф 7️⃣

🕕 Не слід їсти після 18.00

👉 Відповідь: не потрібно з'їдати все з холодильника до 18:00 і лягати спати, а зробити інтервал перед сном. Потрібно хоча б за 2-3 години до сну не їсти - і всі біохімічні процеси працюватимуть нормально. Цей міф існує вже дуже давно і досить успішно. Тут важливо - не лягати на повний шлунок і не вживати важку їжу у вечірні години.

Міф 8️⃣

😖 Правильне харчування – це не смачно.

👉 Відповідь: це найпоширеніший міф про правильне харчування. Багато хто звик солити, перчити, смажити у фритюрі і зовсім перестав насолоджуватися справжнім смаком продуктів. Можна приготувати ті ж самі котлети з курячого фаршу на пару і запекти картоплю. Шукайте більш здорові альтернативи, використовуйте трави, прянощі, пробуйте нові продукти та готуйте їх по-різному.

Всім здорового ставлення до себе та свого харчування! ❤️

#НапуттяВід_HR
👍156🙈1
Гарної п'ятниці та вдалих вихідних 😉

#codica_english
7😁5🥰2❤‍🔥1
What's the meaning of the word solely? 🙃
Anonymous Quiz
15%
Solo
31%
Exclusively
40%
Independently
15%
Не знаю
🔥8👍5
Знайшли в нашого @Mister_Cody його записку 😅

#codica_humor
😁16🔥53👏2❤‍🔥1👍1
Codica - корисне про IT
Що таке Образ Docker (Docker Image) 🤔 📌 Docker Image — це блок, створений за інструкцією з Dockerfile, що виступає шаблоном запуску контейнерів. За допомогою цього документу можна побудувати безліч однакових контейнерів. 👉 Припустимо, ви створюєте один шаблон…
Робота з Docker Networks 👨‍💻

👀 Контейнери та мікросервісна архітектура приносять багато нових челенджів. Але вони також спрощують деякі моменти з безпеки. Наприклад, Firewall набагато простіше налаштувати, коли система маленька і виконує невелику кількість завдань, і їй потрібен доступ тільки до кількох інших контейнерів.

📎 У лінуксі докер використовує iptables для роботи з мережами.

📌 Iptables – стандартний інтерфейс для управління брандмауером netfilter. Поступово його замінює nftables.

Ставте ❤️, якщо вам цікаво почитати про це детальніше.

#codica_tech
10👍1
💻 Мережна Docker підсистема підключається за допомогою драйверів. За замовчуванням існує кілька драйверів, які забезпечують основні мережеві функції:

▪️bridge: Міст — це мережевий драйвер за замовчуванням. Ця мережа використовується, коли ваші програми запускаються в автономних контейнерах, які повинні взаємодіяти між собою (наочний приклад Nginx + MySQL).

▪️host: Хост — це мережевий драйвер для автономних контейнерів (віддалена мережева ізоляція між контейнером і Docker хостом).

▪️overlay/overlay2: Оверлей (накладена мережа) — це мережевий драйвер для з'єднання кількох демонів Docker між собою, які дозволяють docker-swarm службам взаємодіяти один з одним.

▪️macvlan: Маквлан - це мережевий драйвер, який дозволяє призначати MAC-адресу контейнеру, роблячи його відображуваним, як фізичний пристрій у вашій мережі.

▪️none: відключає всю мережу для контейнера або контейнерів.

▪️Network plugins: Ви можете встановити та використовувати сторонні мережеві плагіни з Docker контейнерами. Ці плагіни доступні в Docker Store або сторонніх постачальників послуг.

Де і що краще використовувати? 🧐

👉 Міст (bridge) краще використовувати для зв'язку декількох контейнерів на тому самому Docker хості. Можна використовувати docker-compose і вибирати цю мережу для такої зв'язки.

👉 Хост (host) мережі краще використовувати, коли мережевий стек не повинен бути ізольований від хоста Docker.

👉 Оверлейна мережа (overlay/overlay2) або накладання мереж краще використовувати, коли вам потрібні контейнери, що працюють на різних Docker хостах для зв'язку, або коли кілька застосунків працюють разом, використовуючи docker-swarm (docker-swarm це застарілий проєкт, який більше не розвивається і не підтримується).

👉 Маквлан (macvlan) мережі найкраще використовувати, коли ви переходите з VM/дедикейта на контейнери або хочете, щоб ваші контейнери виглядали як фізичні хости у вашій мережі, кожен з унікальною MAC-адресою.

👉 Сторонні мережеві плагіни дозволяють інтегрувати Docker зі спеціалізованими мережевими стеками.

#codica_tech
👍53🔥2