Pull to refresh
-29
@hard2018read⁠-⁠only

User

Send message

Изучаем PostgreSQL. Часть 1. Знакомимся с архитектурой

Reading time8 min
Views142K

 На сегодняшний день существует большое количество различных систем управления базами данных - СУБД, от коммерческих до открытых, от реляционных до новомодных NoSQL и аналогичных.

Одним из лидеров направления СУБД является PostgreSQL и ее различные ответвления, о некоторых из которых мы рассмотрим подробнее.

В этой статье мы начнем говорить о СУБД PostgreSQL, рассмотрим отличия редакций и некоторые особенности архитектуры, а также процесс установки. Но начнем мы с небольшого ликбеза для того, чтобы читатели плохо знакомые с терминологией баз данных могли быстро войти в курс дела.

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

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

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

Читать далее

Переработки на работе

Reading time3 min
Views20K

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

Переработка это не задержаться раз в неделю на час. Переработка это на протяжении долгого времени (скажем пару месяцев и более): задерживание на работе, подключение вне рабочего времени, работу по ночам.

Немного обо мне. Я начинала свою карьеру программистом. Потом перешла в аналитики. А теперь работаю руководителем проекта. Всегда работала и продолжаю работать только в заказной разработке.

Опыт работы с разными командами показал, что отношения к переработкам одно и тоже.

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

Читать далее

Как же приятно писать программы, которые не предназначены ни для чего серьезного

Reading time5 min
Views13K

Рисовать каракули, делать скетчи и всячески возиться с компьютером — это очень странное, но одновременно и великое удовольствие.

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

Конечно же, я написал все эти важные и нужные прикладные программы! Было приятно разрабатывать приложения, которые решали настоящие, практические проблемы.

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

Читать далее

Можно ли стать программистом (в возрасте)?

Reading time4 min
Views28K

Начав с поиска в интернете, удивился, что программистом в возрасте хотят стать с переодичностью в 5 лет, может это как-то связано с циклом разработки, но оставим тему для дальнейшего исследования!

Здравствуйте, меня зовут Олег и я программист! Пусть будет таким начало исповеди в клубе возрастных программистов.

Для экономии времени читателя: да, можно, но есть много "если" и об этом дальнейший текст.

Сейчас мне за 50, но еще 2 года назад о современном программировании я только знал то, что в компании есть отдел разработки и я им плачу деньги. Конечно не честно говорить, что с компьютерами я не знаком. В IT работаю с далекого 97 года, именно тогда я еще что-то писал на Delphi. Но с тех пор прошел путь от инженера, до руководителя представительства крупной софтверной компании, целиком окунувшись в проблемы "бузинеса".

Два года назад меня пригласили в стартап, исполнительным. Стартапы - еще одна тема, которую стоит сейчас обойти, но причина, почему упоминаю именно эту структуру компании: стиль работы и качество процессов. На начальном моменте разработкой занималась аутсорсинг компания, которая, как оказалась, делала прототип (макет) больше, чем программный продукт.

В чем разница? Простые вопросы дадут ответ: есть ли документация? как построена отказоустойчивость (тут про девятки лучше не спрашивать, чтоб не унизить коллег), есть ли инструкция пользования системой, отчуждаем ли продукт. Да, это вопросы от "бизнеса", но они как раз и помогают оценить зрелость.

Красивые картинки хороши для уговоров инвесторов вложиться в проект, но для управления компанией, её развитием и в конечном итоге (а по существу это первое) - для окупаемости, нужно много инструментов аналитического, управленческого характера.

Читать далее

Креативность и программист

Reading time5 min
Views2.9K

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

Читать далее

15 причин, почему ты всё ещё джун

Reading time5 min
Views65K

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

Итак, что обычно мешает условному джуну подтянуться до условного мидла?

Перейти к просветлению

Антипаттерны проектирования

Reading time9 min
Views28K

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

Читать далее

Бредовые проекты в разработке

Reading time10 min
Views4.7K
Впервые я попал в неприятности в «Тиме Хортоне», когда жарил пару дюжин хрустящих пончиков с грецким орехом. «Тим Хортон» — это кафе, которое торгует кофе и пончиками, я работал там году эдак в 2002-м, когда учился в университете.

Большая часть пончиков жарится по тридцать секунд на сторону, потом их переворачивают и обжаривают с другой стороны. Работать приходилось в пекле, всю смену возле фритюрницы, но вот готовить хрустящие пончики с грецким орехом (сейчас их уже убрали из меню) я любил, потому что им нужно жариться по три минуты на сторону. А значит, у меня было время взять пустую банку из-под масла, сесть и дать отдых ногам, пока они готовятся.

На этом-то я и попался. Управляющий нашим кафе, который обычно отсутствовал, когда у меня были смены, увидел, как я сижу. «Свободное время у тебя чтобы убираться, а не чтобы рассиживаться». И вот, в следующую смену, пока жарилась очередная партия хрустящих пончиков с грецким орехом, мне пришлось по второму кругу надраивать уже вымытый пол. Еще у меня были варианты протереть и без того чистые кухонные столы или еще на раз пересчитать яйца. Лишь бы не отдыхал.

Так я впервые столкнулся с имитацией бурной деятельности (ИБД): работой, которая делается чисто ради того, чтобы чем-то себя занять. Она является одной из разновидностей бредовой работы: работы которую сотруднику приходится выполнять, хотя она не имеет никакого смысла.

Я терпеть не мог ИБД и ужасно рад, что окончил университет и пришел в разработку, где мне не приходится делать вид, что я постоянно чем-то занят. Пока идет сборка, я могу почитать Hacker News и ни от кого еще не слышал, что лучше бы мне за это время навести лоск на скобки.
Читать дальше →

Необходимые качества программиста, за которые платят

Reading time4 min
Views8.9K

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

Удобно ли расписание сеансов? Вовремя ли начался фильм? Как много было рекламы? Насколько комфортны кресла? А какое качество звука? Повезло ли с соседями – или опять чавкали и шелестели чипсами?

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

Читать далее

Сказка о потерянном времени или почему не стоит искать «идеальных» кандидатов

Reading time6 min
Views9.5K

Найти хорошую работу в IT — непростая задача. А просто ли рекрутеру найти достойного кандидата? Мы поговорили со старшими HR-менеджерами Voximplant Алиной Семеновой и Витой Прокопенко, чтобы взглянуть на поиск «идеального» кандидата глазами рекрутера. 

Читать далее

Jenkins pipelines с Groovy

Reading time8 min
Views22K

Добрый день, коллеги. Jenkins является одной из самых популярных систем CI/CD, которая применяется для построения пайплайнов сборки и доставки.

Jenkins поддерживает построение пайплайнов на основе Groovy скриптов. Использование Groovy дает возможность очень гибко настраивать пайплайны под нужды конкретного проекта.

Рассмотрим основы построения пайплайнов в Jenkins с использованием Groovy скриптов.

Groovy - это объектно-ориентированный язык программирования, использующий платформу JVM. Этот динамический язык имеет множество возможностей, вдохновленных Python, Smalltalk и Ruby. Он также предлагает множество функций для повышения скорости и удобства написания кода, таких как поддержка DSL, замыкания и динамическая типизация.

Почему стоит использовать Groovy в Jenkins?

Читать далее

Только начинаете автоматизацию тестирования? Не совершайте эти ошибки

Reading time5 min
Views12K

Я часто работаю с клиентами, которые либо только начинают, либо пытаются развивать свои навыки в автоматизации тестирования, и чаще всего все они совершают одни и те же фатальные ошибки.

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

И если бы время исполнения было единственным временем для оценки, они были бы правы.

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

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

 Оставьте время для обучения

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

Команды, обучающиеся автоматизации, могут проходить через несколько кривых обучения одновременно: язык программирования, концепции программирования, инструмент или фреймворк автоматизации тестирования, управление исходным кодом и совместная работа над программным проектом.

Читать далее

Как слить кучу денег на то, что не полетит. Или мои выводы из историй знакомых стартаперов

Reading time4 min
Views7.1K

Привет! На связи Боровков Евгений, основатель конструктора прототипов сайтов wmtools.ru[ссылка удалена модератором]. В этой статье я хочу поделиться выводами, которые я сделал, узнав несколько историй нескольких стартапов.

Читать далее

Чем самообучение лучше курсов

Reading time5 min
Views16K

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

Читать далее

Анализируем трояны в популярных SSH-клиентах

Reading time12 min
Views12K

Весной 2022 года северокорейская хакерская группировка Lazarus начала распространение троянизированных SSH клиентов с открытым исходным кодом для создания бэкдоров в сферах развлечения, обороны и медицины. Жертвами первой волны этой атаки стали инженеры и специалисты технической поддержки, работающие в IT-компаниях Великобритании, Индии, России и США. 

Согласно отчету Microsoft, пострадало около 20 тысяч простых работяг. 

Также существуют сведения об атаках, связанных конкретно с клиентом Putty. Распространение проходило через почтовый сервис. Жертва получала письмо с содержанием о вакансии в Amazon и ISO-файлом, в котором была зараженная версия программы и текстовый документ с данными для входа. В подобном векторе атак засветился дроппер DaveShell, речь о котором пойдет немного позже. 

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

Читать далее

Яндекс ДИСК — возможные грабли

Reading time2 min
Views17K

Есть у нас сервис для автоматизации внутренних процессов организации. И для хранения относительно большого количества фотографий мы используем Яндекс диск через WebDAV. Фотографии мы храним в папках по месяцам. И вот недавно у нас пропали результаты всех наших трудов за 3 месяца. Т.е. пропали 3 папки из корня Яндекс диска.

Читать далее

Настройка WireGuard на Mikrotik

Reading time5 min
Views220K

Если не касаться wiki и официального сайта, и объяснять как можно проще, то это VPN туннелирование через UDP.

Это возможность быстро, максимально просто и надёжно, с хорошим уровнем безопасности соединить две точки между собой.

Хотите узнать как?

Сарафанное радио на фрилансе

Reading time5 min
Views3.8K

Это глава из «Книги нормального фрилансера», в которой я делюсь опытом проектировщика интерфейсов, работающего на себя.

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

«Сарафанное радио» — это когда клиенты, оценившие фрилансера по достоинству, начинают его рекомендовать.

Первый заказчик по сарафанному радио обратился ко мне буквально в течение нескольких месяцев после начала работы на фрилансе. Он позвонил по телефону со словами: «Здравствуйте, Егор, мне вас порекомендовали как человека, который может помочь спроектировать сайт…» В тот момент я так сильно обрадовался новому потенциальному заказу, что даже забыл спросить, кто именно меня рекомендовал.

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

Читать далее

Выгорание разработчиков

Reading time6 min
Views8.5K

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

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

Мы в RDP опросили своих коллег и сегодня делимся с вами их советами, как предотвращать выгорание и успешно справляться со стрессом на рабочем месте.

Читать далее

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

Reading time9 min
Views34K

«Собственно, б***ь, вот…», думал я, пока в телефонной трубке звучали длинные гудки. Я звонил своему боссу — не сомневаюсь, этим ясным пятничным утром он только и мечтал услышать, как его старший разработчик только что своими руками, не нарочно, удалил базу данных бэк-офиса.

Гудки напомнили мне писк больничной аппаратуры — когда монитор отмеряет последние пульсы умирающего больного. В данном случае, речь шла о моей карьере. Наконец, трубку на том конце кто-то снял. Мне оставалось уповать лишь на мудрость моего начальника. В глубине души я верил, что, выслушав меня, он произнесет какую-нибудь вдохновляющую речь, после которой я найду в себе силы всё исправить. Но он сказал: «Как это, мать твою, вообще случилось?!».

Что ж, сейчас я расскажу вам, как.

Читать далее

Information

Rating
Does not participate
Registered
Activity