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
Навіщо та як проводити рефакторинг коду 🙃

📌 Рефакторинг — це зміна зовнішнього вигляду коду без зміни його поведінки.

💁‍♂️ Ви можете написати програму в будь-який зручний спосіб так, щоб вона працювала. Але в будь-якому випадку доведеться упорядкувати вихідний код, тобто провести рефакторинг.

#codica_tech
👍81🔥1
Навіщо ж потрібна ця процедура, якщо вона не вносить корективи в застосунок і не змінює його функціонал

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

Загалом ця процедура спрямована:

на збереження архітектури проєкту, без втрати структурованості;
на спрощення життя розробників, роблячи код прозорим та зрозумілим для всіх членів команди;
на прискорення процесу пошуку помилок.

Рефакторинг необхідний, якщо ваш код:

🔺 важко читати (це найголовніше!);
🔺 незрозумілий;
🔺 дублюється;
🔺 метод або функція містить занадто багато рядків;
🔺 нечистий (є закоментований код, присутні другорядні коментарі);
🔺 тяжко дебагувати;
🔺 важко вносити зміни;
🔺 важко масштабувати програму.

Часто рефакторинг плутають із оптимізацією, оскільки ці два процеси, найчастіше, проводять одночасно. Але насправді це два різні поняття, що мають різні цілі:

☝️ оптимізація – покращує продуктивність програми;
☝️ рефакторинг – покращує зрозумілість коду.

Рефакторинг виконується послідовно, крок за кроком. Безперечно, чистити можна все. Однак насамперед рекомендується знайти такі проблеми:

🔎 Мертвий код — це параметр, змінна, метод або клас, який більше не використовується. Такі ділянки потрібно видалити.
🔎 Дублювання – той самий код виконує одну й ту саму дію в кількох місцях програми.
🔎 Імена класів, функцій, змінних не передають їхнього значення.
🔎 Занадто довгі функції, методи, класи та списки параметрів функцій. Якщо їхня довжина виходить за оптимальне значення, необхідно розбити їх на маленькі складові.
🔎 Велика кількість коментарів, які захаращують програму.

🧑‍💻 Як правило, код чистять на етапі тестування, коли все вже готове та перевіряється працездатність програми.

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

#codica_tech
👍192🔥1
Як пережити зиму 🥶

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

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

☃️ Зима у нас з вами триватиме щонайменше ще 2 місяці, тому нам тільки й залишається постаратися мінімізувати її збитки. Як кажуть, порятунок потопельників, як і раніше, найбільш ефективний, якщо самі потопельники не стоять від нього осторонь.

Давайте розглянемо кілька стратегій, які допоможуть нам стати трохи жвавішими, продуктивнішими, а в ідеалі і щасливішими в цей нелегкий час 😌
👍41
Уникайте ізоляції 👀

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

🙃 Помічали за собою таке? Так от, вчені кажуть, що це одна з найгірших речей, яку ви можете зробити для власного здоров'я. Дослідження показують, що відсутність соціальних взаємодій може бути шкідливим для здоров'я так само, як куріння.

💁🏻‍♀️ Найкраще, з цієї точки зору, на нашій психіці позначається участь у різноманітних альтруїстичних заходах у компанії інших людей. Тож не бійтеся замерзнути, йдіть у народ і допомагайте іншим.

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

Харчуйтеся правильно 🥗

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

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

У зимовий період правильне харчування допомагає одразу у двох напрямках:

По-перше, воно допомагає контролювати вагу.

Багато хто стикався з тим, як працює це зачароване коло: взимку ми багато і неправильно їмо і набираємо вагу. Але замість того, щоб швидше бігти від неї позбавлятися, впадаємо в напівкоматозний стан і не поспішаємо в спортзал, парк або на лижню, тому що «все одно набрали вагу». У цьому сенсі здорове харчування – найкращий спосіб розірвати це зачароване коло.

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

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

Практикуйте позитивне мислення 💭

Здавалося б, нічого нового, і зазвичай такі поради викликають роздратування особливо у такий непростий час. Однак наше ставлення до різних речей у більшості випадків залишається нашим вибором 🧠

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

👉 З іншого боку, у нас, на відміну від тварин, цей вибір є. І наш спосіб мислення – позитивний чи негативний – впливає на наш настрій. То чому б не застосувати цю взаємозалежність із користю? Поставтеся до позитивного мислення як до звичайної навички, яку можна розвинути так само, як і будь-яку іншу навичку.

Друзі, тримаймося! 🫂
Залишилося зовсім небагато. До кінця зими 40 днів – і весна! 🌸

#НапуттяВід_HR
👍92🥰1
Друзі, у цьому році ми хочемо зробити наш контент ще цікавішим для вас 🙂

Тому, ми вирішили зробити невелике опитування за темами в нашому каналі ☑️

Підкажіть, будь ласка, який контент вам цікавий 👇
4👍2🔥1
Гарної п'ятниці та вдалих вихідних 😉

#codica_english
👍5🔥3😁1
Ви втомилися так, що валитеся з ніг 🥱
Як описати свій стан одним словом?
Anonymous Quiz
27%
Knackered
9%
Miffed
54%
Legless
11%
Не знаю
👍83🔥1
🔷 Docker Client and Server

👉 Клієнт Docker (Docker Client) — головний інтерфейс до Docker. Так, при роботі з інтерфейсом командного рядка Docker (Docker Command Line Interface, CLI), у термінал вводять команди, що починаються з ключового слова docker, звертаючись до клієнта. Потім клієнт використовує API Docker для надсилання команд демону Docker. Деякі альтернативи докеру (Podman) відмовляються від daemon, як від окремої абстракції.

👉 Демон Docker (Docker Daemon) - це сервер Docker, який чекає на запити до API Docker. Демон Docker керує образами, контейнерами, мережами та томами. Користувач не взаємодіє із сервером просто, а використовує для цього клієнт. Всередині daemon є компонент - containerd, він буде викликаний, якщо вам потрібно запустити контейнер. Він гарантує, що docker image, який вам потрібно запустити існує і викликає runc для створення екземпляра контейнера.

🔷 Docker Image

👉 Образ Docker (Docker Image) — складається з 2х компонентів - файлової системи та конфігурації. Файлова система - це набір різних файлів. Багато творців образів можуть її публікувати, наприклад, Alpine (download link). Всередині цієї rootfs буде стандартний список директорій Linux. Ця файлова система повинна мати всі утиліти, які вам потрібно використовувати в контейнері, наприклад “ls”.

👀 Образ може містити операційну систему Ubuntu з Apache та додатком на ній. Образи використовуються для створення контейнерів. Docker дозволяє легко створювати нові образи, оновлювати наявні або ви можете завантажити образи, створені іншими людьми.

🔷 Docker Registry

👉 Docker-реєстр зберігає образи. Існують публічні та приватні реєстри, з яких можна завантажити образи. Публічний та найвідоміший Docker-реєстр - це Docker Hub. Там зберігається величезна колекція образів. Як ви знаєте, образи можуть бути створені вами або ви можете використовувати образи, створені іншими.

🔷 Docker Сontainer

👉 Кожен контейнер створюється з образу. Контейнери можуть бути створені, запущені, зупинені, перенесені або видалені.

Ставте 👍, якщо вам було цікаво та хочете, щоб ми продовжували розповідати про Docker.

#codica_tech
👍243
Всім привіт! 👋

Раді вам повідомити, що у нас з'явився TikTok 😱

📲 У TikTok Codica ви знайдете поради новачкам від наших розробників, корисну інформацію від HR, і, звісно, велику кількість розважального контенту!

Наприклад:
✔️ Дізнаєтесь, як підготуватися до розмови з керівником про підвищення зарплати
✔️ Говоримо про те, що не варто вказувати в резюме та які питання потрібно ставити рекрутеру на співбесіді
✔️ Лайфгаки, як зробити перший крок в ІТ
✔️ Професійний гумор - must have

Друзі, підписуйтеся на наш TikTok та приєднуйтеся до нашої спільноти! 😉

#codica_advice
👍11🥰4👎21🔥1
Сьогодні ми відзначаємо День Соборності та Свободи України 🇺🇦

Цей день символізує єдність земель України. Codica надсилає свої привітання та побажання кожному з нас зберігати силу духу, бадьорість та оптимізм 🙂

Нехай у кожній родині панує мир і спокій, любов та порозуміння. Ми віримо у нашу перемогу та світле майбутнє і сприятимемо розвитку та процвітанню нашої країни 💙💛
18🔥3👏1
Ловіть невеличкий дайджест новин зі світу IT від @Mister_Cody 🐾

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

👀 Вчені з’ясували, як «бачити» людей крізь стіни по Wi-Fi.

📲 Таліби купували сині галочки у Twitter. Це викликало обурення у соцмережі.

😰 «Рабовласники» ChatGPT. Кенійським робітникам платили менш як $2 за годину. Розслідування TIME.

💬 Президент «Київстар» сказав, генераторами всю мережу оператор підтримати не зможе.
👍81
Доброго ранку та гарного тижня 🌤

#codica_ruby
6🥰2
Що таке Zero Trust? 🔐

🧑‍💻 Останні кілька років сучасний бізнес вийшов за межі офісів. Співробітники компаній отримують віддалені доступи до корпоративної інформації, часто використовують для цього особисті пристрої та працюють там, де є можливість підключатися до Wi-Fi. З одного боку, це розширює географію бізнесу, з іншого – ускладнює організацію комплексної безпеки компанії.

🔎 Сьогодні бізнесу потрібна багаторівнева модель безпеки, яка ефективно адаптується до нових умов роботи і забезпечує захист локальних та хмарних ресурсів. Вона вимагає суворої перевірки ідентичності для кожної людини та пристрою, які намагаються отримати доступ до корпоративної мережі.

#codica_tech
🔥6👍3
Що таке модель Zero Trust? 🤔

✍️ Zero Trust – це модель безпеки, що вимагає суворої перевірки ідентичності для кожної людини та пристрою, які намагаються отримати доступ до ресурсів у мережі, незалежно від того, чи знаходяться вони всередині або за межами периметра мережі.

📌 Основний меседж Zero Trust: «Ніколи не довіряти, завжди перевіряти». Ця модель передбачає, що зловмисники є як всередині, так і за межами мережі, тому жодним користувачам чи пристроям не можна автоматично довіряти. Zero Trust перевіряє ідентичність та привілеї користувача, а також ідентифікацію та безпеку пристрою.

Області захисту моделі Zero Trust 🔒

▪️ Identity

👉 Організація перевірки та контролю ідентифікаційних даних користувачів із застосуванням суворої автентичності у всьому цифровому середовищі компанії.

▪️ Endpoints

👉 Контроль усіх пристроїв, які звертаються до інфраструктури компанії. Забезпечення перевірки стану та відповідності вимогам перед наданням доступу.

▪️ Data

👉 Перехід із захисту на основі периметра до системи безпеки на основі даних. Використання аналітики для класифікації та маркування даних. Організація шифрування та обмежень доступу з урахуванням політик компанії.

▪️ Apps

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

▪️ Infostructure

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

▪️ Network

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

3️⃣ Принципи моделі Zero Trust ⤵️

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

✔️ Використовуйте модель найменших привілеїв та контролюйте доступ.
☝️ Модель найменших привілеїв – це парадигма безпеки, яка обмежує права доступу кожного користувача до рівня, який необхідний для виконання службових обов'язків. Обмежуючи доступ кожному співробітнику, ви перешкоджаєте отриманню зловмисником доступу до великої кількості даних через компрометацію одного облікового запису.

✔️ Відстежуйте все.
☝️ Принципи «нульової довіри» мають на увазі контроль та верифікацію всього поспіль. Логування кожного мережного виклику, доступу до файлу або поштового повідомлення.

Чому модель саме Zero Trust? 🥷

❗️Стратегія «нульової довіри» надає суттєвий рівень захисту проти витоків даних та сучасних кіберзагроз. Все, що потрібно атакуючим для проникнення у вашу мережу, – це час та мотивація. Жодні міжмережні екрани або політики паролів їх не зупинять. Необхідно вибудувати внутрішні бар'єри та відстежувати все, що відбувається, щоб виявити їхні дії під час злому.

#codica_tech
🔥7👍4
2 лютого запрошуємо на Cloud Builders: Embedded Edition!🤖

👉 Долучайтесь, щоб більше дізнатись про Embedded-системи та які методи дебагінгу ефективно використовувати в Linux для Embedded пристроїв.

У програмі:

✔️ “Designing Software for an Embedded Device”, ━ Петро Каращенко, Software Engineer у SQUAD.

✔️ “Linux для Embedded пристроїв: як дебажити власні драйвери”, ━ Максим Примеров, Embedded Engineer в Intellias.

Хост: Віктор Ленивий, Field Application Engineer в Thundercomm

📆 Коли: 2 лютого о 19:00
👀 Де: онлайн
🇺🇦 Усі доповіді будуть українською мовою
🔥 Участь безкоштовна
Деталі та реєстрація 👉 http://bit.ly/3ZKed7p
👍4🔥3
Codica - корисне про IT
Компоненти Docker 🗃 Що таке Docker, ми розповідали у цьому дописі. Тепер розберімо 4 основні компоненти Docker: 🔹 Docker client and server 🔹 Docker image 🔹 Docker registry 🔹 Docker container #codica_tech
Docker контейнери, що це таке та для чого вони потрібні 🤔

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

👀 Docker образ доступний лише для читання. Коли docker запускає контейнер, він створює рівень для читання/запису зверху образу, у якому може бути запущено застосунок.
З практичної точки зору, контейнер це Linux процес, який у всьому обмежений, у ресурсах та доступах до файлової системи.

#codica_tech
👍72🔥2
Що відбувається, коли контейнер запускається? 🙃

👉 Або за допомогою програми docker або за допомогою RESTful API, docker клієнт каже docker демону запустити контейнер.

$ docker container run -it ubuntu /bin/bash

🤓 Розберімося з цією командою. Клієнт запускається за допомогою команди docker, з опцією container run, яка каже, що буде запущено новий контейнер. Мінімальною вимогою для запуску контейнера є образ, який використовується для створення контейнера. У нашому випадку ubuntu.

Що відбувається під капотом, коли ми запускаємо цю команду

Docker по черзі робить таке:

✔️ завантажує образ ubuntu: docker перевіряє наявність образу ubuntu:latest на локальній машині, і якщо його немає, то завантажує його з Docker Hub. Якщо образ є, то використовує його для створення контейнера;
✔️ створює контейнер: коли образ отримано, docker використовує його для створення контейнера;
✔️ ініціалізує файлову систему та монтує read-only рівень: контейнер створений у файловій системі та read-only рівень доданий в образ;
✔️ ініціалізує мережу: створює мережевий інтерфейс, який дозволяє docker-у спілкуватися з хост машиною;
✔️ встановлення IP адреси: знаходить та задає адресу;
✔️ опціонально монтує диски у контейнер;
✔️ запускає зазначений процес: запускає вашу програму.

💁‍♂️ Тепер у вас є робочий контейнер. Ви можете керувати своїм контейнером, взаємодіяти з вашим застосунком. Коли ви вирішите зупинити процес, видаліть контейнер.

#codica_tech
👍6🔥32