Контрольный список характеристик высококачественного кода

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

Читать дальше

Как улучшить навыки программирования?

Мартин Фаулер: «Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку». Давайте разберемся, какие привычки полезны, какие практики важны и что вообще нельзя упускать из виду, если ваш путь — не заурядный, а хороший программист.

Читать дальше

Ошибка «No locks available» в Django при работе в среде Vagrant

Если вы используете Vagrant для создания и конфигурирования виртуальной среды разработки и выбрали файловую систему NFS в Vagrantfile в качестве типа разделяемых папок, есть вероятность, что столкнетесь с ошибкой [Errno 37] No locks available при попытке, например, загрузить файл на сервер с использованием инструментов Django. Как решить проблему?

Читать дальше

Приемы микрооптимизации регулярных выражений

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

Читать дальше

Выбор типа сокета для Python-проектов

Разрабатывая клиент-серверные системы для локального или сетевого использования, возникает вопрос, какой из интерфейсов межпроцессного взаимодействия выбрать. Давайте разберемся, когда уместны UNIX-сокеты, а в каких случаях лучше использовать TCP-сокеты.

Читать дальше

Эффективная работа с ORM в Django

По мере того, как проект набирает популярность, приходится проводить проверку производительности. Часто одной из слабых сторон становятся SQL-запросы, формируемые ORM. В статье рассматриваются известные приемы минимизации количества и оптимизации скорости выполнения SQL-запросов в проекте, реализованном с использованием фреймворка Django.

Читать дальше

Миграция GitLab на новый сервер

Если попытаться на новом сервере восстановить бэкап, созданный предыдущей версией GitLab, возникнет ошибка:

GitLab version mismatch:
  Your current GitLab version (11.9.6) differs from the GitLab version in the backup!
  Please switch to the following version and try again:
  version: 11.9.4

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

Читать дальше

Лучшие практики jQuery

Простые, но очень полезные, рекомендации по написанию кода с использованием jQuery описал Abhinay Rathore в статье «jQuery Coding Standards & Best Practices». Я переводил ее для использования в качестве инструкции для верстальщиков в компании, в которой работаю. Материал активно используется и может быть полезен в том числе как чек-лист.

Читать дальше

Принудительное использование именных аргументов

Одним из способов улучшить удобочитаемость кода является использование именных аргументов в функциях. В некоторых функциях необходимо, чтобы отдельные аргументы могли быть только именными. Как добиться такого поведения в Python 3 и Python 2?

Читать дальше

Django Admin: собственные формы в стандартном стиле

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

Читать дальше

Несколько советов о том, как писать оптимизированный JavaScript для движка V8

Статистика NetMarketShare подтверждает, что Chrome остается самым популярным браузером в мире. JavaScript в Chrome работает под управлением интерпретатора V8. В свете роста популярности использования V8 актуален вопрос особенностей работы этого движка. В этой статье — резюме самых главных моментов, связанных с оптимизацией кода для V8.

Читать дальше