Pull to refresh
2
0
Send message

На пути из Web к Native, часть 1

Level of difficultyMedium
Reading time4 min
Views9.6K

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

Оставь надежду, всяк сюда входящий. Или.. нет..?

Имея небольшой опыт в веб-программировании, мне казалось, что все не так плохо. И так по началу и было. За вопрос я взялся основательно: без задачи — нет учебы.

Я решил поставить перед собой большую цель: давным-давно...

Читать далее

Релиз биллинговой системы без багов: сделать невозможное возможным

Level of difficultyEasy
Reading time15 min
Views2.9K

Привет! Меня зовут Сергей, я технический эксперт в компании Bercut. Когда-то увлекался Delphi и J2ME, издал несколько книг на эти темы, а сейчас создаю высоконагруженные приложения для баз данных.

Первой СУБД, с которой я познакомился — случилось это в далеком 2002 году, — была PostgreSQL. Тогда я, студент 4-го курса ТИУ, должен был разработать систему электронного документооборота для университета. Система представляла собой WEB-приложение, написанное на языке C, работающее на сервере под ОС UNIX и хранящее информацию в PostgreSQL. С тех пор мое основное поле деятельности - базы данных. А PostgreSQL стала одной из самых популярных СУБД в мире.

В Bercut мы занимаемся разработкой и развитием IT-продуктов, решений для операторов цифровых услуг и мобильных сервисов. Наши системы работают на различном железе, разных СУБД и обслуживают 24x7x365 в режиме онлайн сотни миллионов абонентов по всему миру.

Сегодня мы обсудим, как создавать максимально качественное ПО, содержащее в себе минимальное количество ошибок. Такое ПО, что ошибки никак не проявляются и потому можно считать, что их нет совсем.

Читать далее

Примеры кошмарного софта вокруг нас

Reading time5 min
Views56K
Источник: amansinghblog

В далёкие 90-е мы с нетерпением ждали релизов любимых программ с новыми фичами. Но с выходом MS Office 2000 (на скриншоте) стало ясно — что-то пошло не так. Оказалось, новые функции не только помогают, но и мешают…

И сейчас главная задача — отключить обновления во всех программах. Дошло до того, что приходится копаться в многолетних архивах того же uTorrent, чтобы найти версию без рекламы, которая работала нормально, пока не пришли бодрые менеджеры и не испортили программу на годы вперёд… То же самое по остальным инструментам, которые обрастают фичами и реально деградируют.
Читать дальше →

В софте все всрато и становится еще всратее

Reading time5 min
Views181K

Приветствую хабравчане!

Глава 1 - Нытье про то, что раньше было лучше

Десяток лет читаю Хабр, в основном разработка, программирование, старое железо и посты с адовым рейтингом. Видел несколько постов об ожирении сайтов, софта. О разочаровании в программировании с 2000+ постов. И пост, что в софте все ок, но никто не доволен или как оно там. А не важно. Хочу поделиться своими мыслями и наблюдениями на этот счет.

Ниже размещена картинка с ПК которые у меня были, не все, парочку ноутов я просто не помню. Эволюция их производительности, специально выделил производительность на одно ядро.

Читать далее

System Design 101

Level of difficultyMedium
Reading time42 min
Views141K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


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


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


System Design (сборник на английском языке).

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

Сделай хобби работой и тебе… придется искать и хобби, и работу

Reading time9 min
Views32K

Конфуцию приписывают фразу: «Займись тем, что тебе нравится, и ты не будешь работать ни дня в своей жизни» . Вряд ли он предполагал, что через две с половиной тысячи лет его фразу превратят в лозунг работники сферы профориентации, коучи и продавцы курсов повышения квалификации. Сама идея заниматься тем, что любишь, кажется весьма логичной. Если ты от чего-то получаешь удовольствие и делаешь это хорошо, то почему бы не конвертировать любимое дело в деньги?

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

Сложно, но полезно

Генерация зависимостей внутри программы

Level of difficultyEasy
Reading time7 min
Views5K

В программировании программы часто строятся иерархично. Один программный компонент вызывает функции из другого программного компонента. Как бы представить эту взаимосвязь в законченной программе?

Эту задачу можно решить прибегнув к языку Graphviz и утилитам cpp, dot, make, chrome.

Читать далее

Правила Трех, Пяти и Ноля

Reading time7 min
Views31K

Цель этого поста — познакомить вас с Правилами Трех, Пяти и Ноля и объяснить, какое из них и когда вам следует использовать. В следующем посте мы углубимся в применение Правила Пяти в различных сценариях.

Читать далее

Гипотеза континуума, современное состояние

Level of difficultyMedium
Reading time8 min
Views27K

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

Читать далее

Сага распределенных транзакций

Reading time8 min
Views7.9K

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

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

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

У некоторых в команде уже был опыт работы с xa-транзакциями.
Довольно удобный способ, когда у вас есть несколько ACID СУБД. Процесс состоит из двух фаз.

Читать далее

Чат GPT-4V, который видит — что он умеет

Reading time4 min
Views55K
Случилось вот что: вышел большой отчёт про возможности GPT-4V. Внезапно оказалось, что LLM могут обращаться с картинками так же, как с текстовыми промптами, и никакой особой разницы нет. Что та фигня, что эта фигня, главное — научиться распознавать, дальше те же логические связки. Это давно ожидалось, потому что люди в основном смотрят, и большая часть информации приходит через глаза. Но мало кто ждал, что это так круто получится вот уже сейчас и с LLM.

Отчёт вот. Теперь давайте смотреть, а не читать.


Хорошие мультимодальные способности, чётко считывает указатели, хорошее общее понимание ситуации

Если вы пьяны, он пересчитает пиво и сверит с чеком:



Собственно, важное:
  • Хорошо понимает что за сцена изображена и какие взаимосвязи между объектами на ней.
  • Читает текст, ориентируется на местности, опознаёт конкретных людей
  • Умеет в абстракции и обратно
  • Отлично ищет то, чего не должно быть (отклонения от базовой идеи) — дефекты на деталях, дефекты в людях (в особенности на рентгене) и так далее.
  • Плохо считает.

Давайте к деталям.
Читать дальше →

Платформа «1С: Предприятие» — что под капотом?

Reading time7 min
Views110K
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.

image

Почему мы считаем, что это интересно? Во-первых, потому что платформа «1С:Предприятие 8» — это большое (более 10 миллионов строк кода) приложение на C++ (клиент, сервер и т.д.), JavaScript (веб-клиент), и, с недавних пор еще и Java. Большие проекты бывают интересны хотя бы в силу масштаба, ведь вопросы, незаметные в маленькой кодовой базе, в таких проектах встают в полный рост. Во-вторых, «1С:Предприятие» — это тиражируемый, «коробочный» продукт, а статей про такие разработки на Хабре совсем немного. А еще всегда интересно узнать, как там живут в других командах и фирмах.
Читать дальше →

«Основание» Азимова наоборот

Level of difficultyEasy
Reading time17 min
Views48K

На Apple TV вышел второй сезон сериала, который экранизирует цикл фантастических романов Азимова об Академии (или Основании, а на самом деле — о Фонде). Я, как и многие, читал их в детстве. До сих пор эти тексты не переносили на экран, так что мне, конечно, хотелось увидеть, как будут визуализированы классические образы ученых, защищающих знание и цивилизацию от хаоса и варварства космических масштабов. Показ нового сезона — повод поделиться тем, что, как мне кажется, получилось у создателей сериала по сравнению с книжным источником.

Читать далее

Модель Такмана в переговорах

Level of difficultyEasy
Reading time17 min
Views9.4K

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

Читать далее

DreamBerd — идеальный язык программирования

Reading time12 min
Views27K

DreamBerd - идеальный язык программирования. Вот его фичи!

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

Восклицательные знаки!

Будьте смелее! Заканчивайте каждое утверждение восклицательным знаком!

print("Hello world")!

Если вы чувствуете себя особенно смелым, вы можете использовать еще больше!!!

print("Hello world")!!!

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

print("Hello world")?

Возможно, вам интересно, что Dreambird использует для оператора "не", который в большинстве других языков является восклицательным знаком. Это просто - вместо оператора 'не' используется точка с запятой.

if (;false) {

   print("Hello world")!

}

Читать далее

JavaScript повсюду или почему веб-технологии захватили мир

Reading time18 min
Views16K

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

Пробежимся галопом по истории интернета, перемоем косточки фронтендерам и придем к неутешительному заключению. Буду ругать и хвалить, но выводы делать лишь вам. Хотя и не надеюсь кого-то в чем-то убедить. Добро пожаловать под кат!

Читать далее

Я люблю питон, и вот почему он меня бесит

Level of difficultyEasy
Reading time18 min
Views60K

Вас приветствует ваш зануда!

Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил

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

Это что же получается, kesn опять открыл postman и сломал вёрстку на сайте? Поразительно, никогда такого не было, и вот опять! В принципе, тут можно писать текст любой длины (похоже, у них на бэкенде не Char(255), а Text). Они проверяют длину только на фронтенде, а бэкенд принимает строку любой длины. И это, блин, забавно) Вообще мой девиз - 'кто ищет, тот всегда найдёт', поэтому я ищу постоянно. Кстати, на Хабре скоро выйдет статья про программирование глазами Погромиста, там в том числе про уязвимости на сайтах будет - поэтому если не хотите пропустить, то подписывайтесь на меня в телеге: @blog_pogromista

Мифы и реальность языка программирования C

Level of difficultyMedium
Reading time3 min
Views5.8K

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

Нужно сказать, что C – это старый язык, в котором не хватает множества современных возможностей. Но чего в нём хватает, так это инкапсуляции и изоляции.

Читать далее

От идеи к развертыванию: искусство современной разработки программного обеспечения

Level of difficultyHard
Reading time19 min
Views5K

Только мировые Best-Practice's. Примеры.

Делюсь опытом о процессе разработки программного обеспечения используя Agile, начиная со сбора требований и заканчивая развертыванием.

Читать далее

Заметки об основах программной архитектуры

Reading time9 min
Views24K
Это вводное руководство для архитекторов программного обеспечения. В настоящее время звание «архитектор» очень популярно во всем мире, но не существует настоящего руководства, как стать архитектором программного обеспечения.

1. Общая концепция архитектуры программного обеспечения
2. Архитектурные стили
3. Технология
4. Софт скиллз (принятие архитектурных решений, методы анализа рисков, навыки подачи материала, отношения с командой менеджеров, ведение переговоров, планирование карьеры архитектора)
5. Принципы проектирования
Читать дальше →

Information

Rating
Does not participate
Registered
Activity