Forwarded from Proglib.academy | IT-курсы
💀 Как гарантированно провалить собеседование: 10 верных способов
В интернете можно найти много статей с советами, как идеально пройти собеседование: что говорить, как говорить, как себя вести, с чем приходить, как готовиться, где готовиться, какую информацию предварительно изучить. В общем, инструкций — вагон. Но, если честно, не очень хочется повторяться. Поэтому мы подготовили шуточную статью, как точно провалить собеседование.
Чтобы не завалить собеседование — забирайте наш курс:
🔵 Базовые модели ML и приложения
🔗 Ссылка на статью
В интернете можно найти много статей с советами, как идеально пройти собеседование: что говорить, как говорить, как себя вести, с чем приходить, как готовиться, где готовиться, какую информацию предварительно изучить. В общем, инструкций — вагон. Но, если честно, не очень хочется повторяться. Поэтому мы подготовили шуточную статью, как точно провалить собеседование.
Чтобы не завалить собеседование — забирайте наш курс:
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩1
Преимущества написания чистого, поддерживаемого кода.
Здесь обсуждается важность написания чистого и поддерживаемого кода. Автор, имеющий двадцатилетний опыт программирования, признаёт, что ранее его основной целью было просто заставить код работать, не задумываясь о его качестве и поддерживаемости. Но после знакомства с Laravel он начал обращать внимание на чистоту кода и его удобочитаемость для других разработчиков.
Почему важно писать чистый код:
✔️Высокое качество кода: Обдумывая код и стараясь сделать его максимально чистым, вы автоматически улучшаете его качество.
✔️Удобочитаемость: Чистый код проще для понимания, что облегчает работу другим разработчикам.
✔️Лёгкость поддержки: Чистый и понятный код легче поддерживать, так как снижается риск ошибочных изменений.
✔️Самодокументирование: Чистый код может не требовать дополнительных комментариев, так как он уже говорит сам за себя.
✔️Простота тестирования: Структурированный код с соблюдением принципов единственной ответственности и разделения обязанностей легче тестировать.
✔️Простота для новых разработчиков: Новым членам команды проще разобраться в чистом коде, что ускоряет их адаптацию.
Простые техники для написания чистого кода:
🔸Соблюдение стандартов и соглашений: Следуйте общепринятым стандартам (например, PSR-12), а также рекомендациям вашей команды.
🔸Использование типов: Строгое типизирование делает код более читаемым и понятным.
🔸Описание переменных и методов: Используйте описательные имена для переменных и методов, чтобы код был самодокументируемым.
🔸Пространство для кода: Добавляйте отступы между блоками кода для улучшения его читаемости.
🔸Ранний выход, отсутствие else, отрицательные проверки: Эти подходы помогают упростить логические блоки и делают код более читаемым.
🔸Избегайте временных переменных: Если переменная используется только один раз, её можно исключить, чтобы уменьшить ментальную нагрузку.
🔸Минимизация вложенности: Старайтесь избегать глубоких вложенных структур, чтобы код не становился запутанным.
Здесь обсуждается важность написания чистого и поддерживаемого кода. Автор, имеющий двадцатилетний опыт программирования, признаёт, что ранее его основной целью было просто заставить код работать, не задумываясь о его качестве и поддерживаемости. Но после знакомства с Laravel он начал обращать внимание на чистоту кода и его удобочитаемость для других разработчиков.
Почему важно писать чистый код:
✔️Высокое качество кода: Обдумывая код и стараясь сделать его максимально чистым, вы автоматически улучшаете его качество.
✔️Удобочитаемость: Чистый код проще для понимания, что облегчает работу другим разработчикам.
✔️Лёгкость поддержки: Чистый и понятный код легче поддерживать, так как снижается риск ошибочных изменений.
✔️Самодокументирование: Чистый код может не требовать дополнительных комментариев, так как он уже говорит сам за себя.
✔️Простота тестирования: Структурированный код с соблюдением принципов единственной ответственности и разделения обязанностей легче тестировать.
✔️Простота для новых разработчиков: Новым членам команды проще разобраться в чистом коде, что ускоряет их адаптацию.
Простые техники для написания чистого кода:
🔸Соблюдение стандартов и соглашений: Следуйте общепринятым стандартам (например, PSR-12), а также рекомендациям вашей команды.
🔸Использование типов: Строгое типизирование делает код более читаемым и понятным.
🔸Описание переменных и методов: Используйте описательные имена для переменных и методов, чтобы код был самодокументируемым.
🔸Пространство для кода: Добавляйте отступы между блоками кода для улучшения его читаемости.
🔸Ранний выход, отсутствие else, отрицательные проверки: Эти подходы помогают упростить логические блоки и делают код более читаемым.
🔸Избегайте временных переменных: Если переменная используется только один раз, её можно исключить, чтобы уменьшить ментальную нагрузку.
🔸Минимизация вложенности: Старайтесь избегать глубоких вложенных структур, чтобы код не становился запутанным.
👍7🥱3
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
👍1
LLPhant — комплексная PHP-инфраструктура генеративного искусственного интеллекта
Эта платформа разработана так, чтобы она была максимально простой, но при этом предоставляла вам инструменты, необходимые для создания мощных приложений. Он совместим с Symfony и Laravel.
На данный момент поддерживается только OpenAI, если вы хотите использовать другие LLM, вы можете использовать genossGPT в качестве прокси.
Эта платформа разработана так, чтобы она была максимально простой, но при этом предоставляла вам инструменты, необходимые для создания мощных приложений. Он совместим с Symfony и Laravel.
На данный момент поддерживается только OpenAI, если вы хотите использовать другие LLM, вы можете использовать genossGPT в качестве прокси.
GitHub
GitHub - LLPhant/LLPhant: LLPhant - A comprehensive PHP Generative AI Framework using OpenAI GPT 4. Inspired by Langchain
LLPhant - A comprehensive PHP Generative AI Framework using OpenAI GPT 4. Inspired by Langchain - LLPhant/LLPhant
👍3🤔1
Как хранить координаты точки на карте в БД?
Рассмотрим несколько возможных подходов:
1. Хранение отдельных полей с широтой и долготой:
- Создайте две числовые колонки в таблице БД, например, «latitude» и «longitude», представляющие широту и долготу соответственно.
- Для каждой точки, сохраните ее координаты в эти поля.
- При поиске точек на карте, вы можете использовать операторы сравнения или функции, поддерживаемые БД, для поиска точек в определенном радиусе или в пределах определенной географической области.
2. Использование географических типов данных:
- Некоторые реляционные БД, такие как MySQL с расширением Spatial, PostgreSQL с расширением PostGIS или SQLite с поддержкой расширения SpatiaLite, предоставляют специальные типы данных для работы с географическими объектами.
- Создайте колонку с типом данных для хранения географической информации, например, тип «Point», который позволяет хранить точку с заданными координатами.
- Сохраняйте информацию о точках на карте в этой колонке.
- Используйте функции и операторы, поддерживаемые соответствующим расширением БД, для выполнения географических запросов, таких как поиск точек в определенном радиусе или внутри границ определенного полигона.
#вопросы_с_собеседований
Рассмотрим несколько возможных подходов:
1. Хранение отдельных полей с широтой и долготой:
- Создайте две числовые колонки в таблице БД, например, «latitude» и «longitude», представляющие широту и долготу соответственно.
- Для каждой точки, сохраните ее координаты в эти поля.
- При поиске точек на карте, вы можете использовать операторы сравнения или функции, поддерживаемые БД, для поиска точек в определенном радиусе или в пределах определенной географической области.
2. Использование географических типов данных:
- Некоторые реляционные БД, такие как MySQL с расширением Spatial, PostgreSQL с расширением PostGIS или SQLite с поддержкой расширения SpatiaLite, предоставляют специальные типы данных для работы с географическими объектами.
- Создайте колонку с типом данных для хранения географической информации, например, тип «Point», который позволяет хранить точку с заданными координатами.
- Сохраняйте информацию о точках на карте в этой колонке.
- Используйте функции и операторы, поддерживаемые соответствующим расширением БД, для выполнения географических запросов, таких как поиск точек в определенном радиусе или внутри границ определенного полигона.
#вопросы_с_собеседований
👍4❤2
Советы по моделям в Laravel
В Laravel есть множество полезных функций, которые могут улучшить опыт разработки, но легко упустить некоторые из них. Вот несколько советов по работе с моделями в Laravel:
✅1. Избегайте проблемы N+1 запросов
N+1 запросы возникают, когда для каждого элемента в коллекции данных выполняется отдельный запрос к базе данных, что замедляет приложение. Чтобы избежать этого, используйте eager loading для подгрузки связанных данных заранее.
✅2. Предотвращение доступа к несуществующим атрибутам
Если вы случайно попытаетесь получить доступ к несуществующему атрибуту модели, Laravel может вернуть null, что может вызвать неожиданные ошибки. Включите функцию, которая будет выбрасывать исключение при попытке доступа к несуществующему полю.
✅3. Защита от молчаливого игнорирования атрибутов
При попытке обновить модель с использованием полей, которые не указаны в списке fillable, Laravel просто проигнорирует эти данные. Включите функцию, которая будет выбрасывать исключение в таких случаях, чтобы избежать ошибок.
✅4. Включение строгого режима
Если хотите активировать сразу все перечисленные выше проверки, используйте строгий режим моделей. Он включает предотвращение ленивой загрузки, доступ к несуществующим атрибутам и молчаливое игнорирование атрибутов.
✅5. Использование UUID вместо автонумерации
Для повышения безопасности можно использовать UUID (уникальные идентификаторы) в качестве первичных ключей или для публичных идентификаторов. Это затрудняет предсказание ID и может защитить приложение от атак.
✅6. Использование кастомных коллекций
Laravel позволяет создавать собственные коллекции моделей с дополнительными методами для удобства работы с ними.
В Laravel есть множество полезных функций, которые могут улучшить опыт разработки, но легко упустить некоторые из них. Вот несколько советов по работе с моделями в Laravel:
✅1. Избегайте проблемы N+1 запросов
N+1 запросы возникают, когда для каждого элемента в коллекции данных выполняется отдельный запрос к базе данных, что замедляет приложение. Чтобы избежать этого, используйте eager loading для подгрузки связанных данных заранее.
✅2. Предотвращение доступа к несуществующим атрибутам
Если вы случайно попытаетесь получить доступ к несуществующему атрибуту модели, Laravel может вернуть null, что может вызвать неожиданные ошибки. Включите функцию, которая будет выбрасывать исключение при попытке доступа к несуществующему полю.
✅3. Защита от молчаливого игнорирования атрибутов
При попытке обновить модель с использованием полей, которые не указаны в списке fillable, Laravel просто проигнорирует эти данные. Включите функцию, которая будет выбрасывать исключение в таких случаях, чтобы избежать ошибок.
✅4. Включение строгого режима
Если хотите активировать сразу все перечисленные выше проверки, используйте строгий режим моделей. Он включает предотвращение ленивой загрузки, доступ к несуществующим атрибутам и молчаливое игнорирование атрибутов.
✅5. Использование UUID вместо автонумерации
Для повышения безопасности можно использовать UUID (уникальные идентификаторы) в качестве первичных ключей или для публичных идентификаторов. Это затрудняет предсказание ID и может защитить приложение от атак.
✅6. Использование кастомных коллекций
Laravel позволяет создавать собственные коллекции моделей с дополнительными методами для удобства работы с ними.
❤9👍3
Используете ли вы VPN?
Anonymous Poll
16%
Нет, мне лень
24%
Очень редко по особым случаям
37%
Регулярно
23%
Почти не выключаю/каждый день
Forwarded from Proglib.academy | IT-курсы
🤥 Наврал в резюме: 5 вариантов, что делать
Каждый из нас хотя бы раз в жизни хотел выглядеть немного лучше, чем он есть на самом деле. В этой статье хочется поговорить о том, что делать, если вы наврали в резюме, но очень хотите получить работу и теперь не знаете, как быть и что делать.
Чтобы не было казусов с ложью в резюме: забирайте наш курс для программистов:
Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔵 Алгоритмы и структуры данных
🔗 Ссылка на статью
Каждый из нас хотя бы раз в жизни хотел выглядеть немного лучше, чем он есть на самом деле. В этой статье хочется поговорить о том, что делать, если вы наврали в резюме, но очень хотите получить работу и теперь не знаете, как быть и что делать.
Чтобы не было казусов с ложью в резюме: забирайте наш курс для программистов:
Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Привет, друзья! 👋
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Extend or implement
🌐Автор обсуждает различие между наследованием абстрактных классов и реализацией интерфейсов в программировании, а также свое недовольство тем, как часто наследование используется неправильно. Он указывает, что наследование зачастую применяется для обеспечения гибкости и конфигурируемости кода, что кажется ему неправильным, поскольку это противоречит первоначальному замыслу объектно-ориентированного программирования (ООП), описанному Аланом Кеем.
🔄Согласно его мнению, наследование должно отражать реальные отношения (например, AdminUser наследует User), тогда как интерфейсы должны описывать техническое поведение (например, User реализует Model). Он также выражает разочарование, что современные языки программирования часто допускают злоупотребление наследованием, хотя есть и другие, более подходящие способы решения проблем конфигурации и расширяемости кода.
✅В итоге он находит свое представление о наследовании и интерфейсах более удобным для работы, хотя признает технические ограничения PHP.
🌐Автор обсуждает различие между наследованием абстрактных классов и реализацией интерфейсов в программировании, а также свое недовольство тем, как часто наследование используется неправильно. Он указывает, что наследование зачастую применяется для обеспечения гибкости и конфигурируемости кода, что кажется ему неправильным, поскольку это противоречит первоначальному замыслу объектно-ориентированного программирования (ООП), описанному Аланом Кеем.
🔄Согласно его мнению, наследование должно отражать реальные отношения (например, AdminUser наследует User), тогда как интерфейсы должны описывать техническое поведение (например, User реализует Model). Он также выражает разочарование, что современные языки программирования часто допускают злоупотребление наследованием, хотя есть и другие, более подходящие способы решения проблем конфигурации и расширяемости кода.
✅В итоге он находит свое представление о наследовании и интерфейсах более удобным для работы, хотя признает технические ограничения PHP.
👍6🎉4🔥1
Книга: «Рецепты PHP. Для профессиональных разработчиков»
❗Важнейшая книга на кухне разработчиков на PHP!
💬В ней нет ни слова о том, как разделывать фазана, зачем солить воду и сколько в минутах будет «до готовности». Лишь практическое руководство, как использовать современную версию PHP для задач, встречающихся в современной практике программистов.
🟢В этом сборнике рецептов разработчики на PHP найдут надежные и проверенные решения распространенных задач. PHP — удивительно простой язык программирования, что объясняет, почему на нем написано более 75% веб-сайтов в Интернете. Но он также невероятно терпим к ошибкам программирования, что может привести к тиражированию сомнительного кода.
❗Важнейшая книга на кухне разработчиков на PHP!
💬В ней нет ни слова о том, как разделывать фазана, зачем солить воду и сколько в минутах будет «до готовности». Лишь практическое руководство, как использовать современную версию PHP для задач, встречающихся в современной практике программистов.
🟢В этом сборнике рецептов разработчики на PHP найдут надежные и проверенные решения распространенных задач. PHP — удивительно простой язык программирования, что объясняет, почему на нем написано более 75% веб-сайтов в Интернете. Но он также невероятно терпим к ошибкам программирования, что может привести к тиражированию сомнительного кода.
Хабр
Книга: «Рецепты PHP. Для профессиональных разработчиков»
Привет, Хаброжители! Важнейшая книга на кухне разработчиков на PHP! В ней нет ни слова о том, как разделывать фазана, зачем солить воду и сколько в минутах будет «до готовности». Лишь практическое...
🥱11👍7😢1
LazyStream — это библиотека, предоставляющая удобный способ ленивой записи в потоки с помощью генераторов. Он позволяет постепенно записывать данные в поток, уменьшая использование памяти и повышая производительность при работе с большими объемами данных.
Она предоставляет следующие функции:
✔️Ленивая запись : библиотека использует генераторы PHP для ленивой записи данных в поток. Это означает, что данные записываются небольшими порциями, что снижает потребление памяти и позволяет эффективно обрабатывать большие наборы данных.
✔️Многопоточная запись (конечно, лениво): экспортируйте большие наборы данных в несколько файлов или сетевых расположений одновременно, например, в резервные копии и журналы.
✔️Ленивое открытие : ваш поток никогда не будет открыт до того, как он вам действительно понадобится.
✔️Совместимость с потоками : библиотека совместима с различными типами потоков, включая файловые потоки, сетевые потоки и пользовательские потоки. Вы можете легко интегрировать его с существующим кодом, основанным на потоковых операциях. На самом деле он работает с любым типом потока, если он зарегистрирован благодаря stream_wrapper_register().
✔️Потоковые режимы : в настоящее время библиотека поддерживает только потоковое чтение. В ближайшем будущем планируется поддержка ленивого потокового чтения и удобный способ сделать это.
Она предоставляет следующие функции:
✔️Ленивая запись : библиотека использует генераторы PHP для ленивой записи данных в поток. Это означает, что данные записываются небольшими порциями, что снижает потребление памяти и позволяет эффективно обрабатывать большие наборы данных.
✔️Многопоточная запись (конечно, лениво): экспортируйте большие наборы данных в несколько файлов или сетевых расположений одновременно, например, в резервные копии и журналы.
✔️Ленивое открытие : ваш поток никогда не будет открыт до того, как он вам действительно понадобится.
✔️Совместимость с потоками : библиотека совместима с различными типами потоков, включая файловые потоки, сетевые потоки и пользовательские потоки. Вы можете легко интегрировать его с существующим кодом, основанным на потоковых операциях. На самом деле он работает с любым типом потока, если он зарегистрирован благодаря stream_wrapper_register().
✔️Потоковые режимы : в настоящее время библиотека поддерживает только потоковое чтение. В ближайшем будущем планируется поддержка ленивого потокового чтения и удобный способ сделать это.
GitHub
GitHub - alexandre-daubois/lazy-stream: Write and read data to and from streams, only when it is really needed to
Write and read data to and from streams, only when it is really needed to - alexandre-daubois/lazy-stream
👍3❤2
Объясните разницу между $message и $$message
$message — это обычная переменная, имеющая фиксированное имя и фиксированное значение, тогда как $$message — это ссылочная переменная, в которой хранятся данные о переменной. Значение $$message может динамически меняться по мере изменения значения переменной.
#вопросы_с_собеседований
$message — это обычная переменная, имеющая фиксированное имя и фиксированное значение, тогда как $$message — это ссылочная переменная, в которой хранятся данные о переменной. Значение $$message может динамически меняться по мере изменения значения переменной.
#вопросы_с_собеседований
🥱23👍6👾2😁1
Какие новые возможности PHP 8.4 являются наиболее практичными и заслуживающими внимания для разработчиков?
В этой статье рассматриваются наиболее практичные и заслуживающие внимания функции PHP 8.4, на которые разработчикам стоит обратить внимание.
В этой статье рассматриваются наиболее практичные и заслуживающие внимания функции PHP 8.4, на которые разработчикам стоит обратить внимание.
DEV Community
What are the most practical and noteworthy new features of PHP8.4 for developers?
With the release of PHP 8.4 on the horizon, developers are eagerly anticipating the new features and...
👍4🌚2
Forwarded from Библиотека питониста | Python, Django, Flask
🛠️ API-документация без головной боли: ТОП-11 инструментов
Ручное создание документации отнимает много времени и чревато ошибками. Представляем подборку инструментов, которые автоматизируют процесс и помогут вам сосредоточиться на разработке, а не на написании документации.
🔗 Читать статью
Ручное создание документации отнимает много времени и чревато ошибками. Представляем подборку инструментов, которые автоматизируют процесс и помогут вам сосредоточиться на разработке, а не на написании документации.
🔗 Читать статью