Раз я официально получаю образования бизнес-информатика, то буду также писать о полезных ит-бизнес книгах. Пока летел с отпуска, решил перечитать.
Первая, и самая актуальная — это известная дилемма инноватора. Хотите узнать почему большие компании проигрывают маленьким? Как черезмерное качество опасно для больших компаний? Почему большие компании не анализируют маленькие рынки, а затем умирают?
Автор делит технологии на "поддерживающие" и "подрывные". Большие компании пытаются много поддерживать, но слишком недооценивают маленькие стартапы. А когда рынок начинает расти, то не успевают адаптироваться.
Также интересно, как Apple и IBM украли технологию выввода информации на экран в растровой графике у Xerox PARC. Убив ее.
А первый поисковик назывался WANDEX. Позже его наработки украли Яндекс и Гугл.
Крайне полезная и по сей день актуальная книга. Она учит важному мышлению — необходимо понимать, что ресурсы компании зависят от потребителей и инвесторов. Не стоит делать лишнию работу, которая не дает бизнесу прибыли сейчас. Какой бы, эта работа, заманчивой не казалась в будущем
#books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Основной принцип хорошей архитектуры — простота.
Наилучшим дизайном считается простейший дизайн.
Что это значит? А значит, что текущая архитектура должна делать ровно то, что от нее требуется. Без маниакальной работы на перспективу.
Как говорит Мартин, подход усложнения был популярен в 1980х, 1990х. Программы долго запускались, а тестировать их было сложно. Так система пыталась быть сложнее, чем необходимо. Сейчас же стоимость автотеста дешевле, что легко экономит стоимость разработки
Каждый раз, когда возникает мысль "хорошо бы добавить крючок на будущее", необходимо спрашивать себя, что произойдет, если мы этого не сделаем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔3😐2
Какое событие отработается первей?
Anonymous Quiz
36%
Тач вьюшки
58%
UIGestureRecognizer
3%
Рандомно
3%
Одновременно
🔥2
Наверное, повешать обработчик жестов — самый популярный способ для обработки событий. Обычно мы прикрепляем пару gesture'ов для вьюхи для тапа, свайпов и тп.
✦ дискретные — вызывает экшен метод ровно один раз
✦ продолжительные — выполняет многократные вызовы экшен методов. например, UIPanGestureRecognizer вызывает экшен каждый раз, когда меняется положение пальца
- Хэндлинг жестов
- Responder chain для хэндлинга событий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
Короче, я тут подумал не отставать от трендов. Сделать свежак, так скажем. Открыть то, что никто не делал.
Помимо архитектур я буду разбавлять вашу ленту свежестью новых технологий. Знакомить с концептами высоких идей.
К черту этот хипстерский SwiftUI. Мы любим запах артрита и радикулита.
Поэтому начнем изучение того, что уже мертво — Obj-c
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37😁11😢9👍5😐3❤2😍2🐳2🌚2⚡1🍓1
Навыки разработки и поддержки кода
Есть 2 стула.
На одном сидит педальщик. Он разрабатывает новые экраны. Не любит легаси. Тащит либы. Его код изолирован от остального и никак не зависим. Идеальная работа. Нет ни рамок, ни ограничений. Как только стало плохо — он выложил резюме.
На втором стуле сидит он. В его глазах боль и слезы. Оставшиеся волосы на голове выстроили слово "Помогите". Каждые 2 минуты он издает животный рев, а некоторые давно забыли как выглядит тот человек, кто сел за этот проект. Да и забыли когда это было. Ведь никто не готов был взять то легаси, то изуродованное полотно дешевого кода. Прошлый разраб валил говна пару лет в гит, а теперь только беcстрашные безумцы взялись за эту работу.
Бесстрашная компетентность. Так бы Мартин назвал скилл, который нужен текущему разрабу. Ему нужно стать человеком. Избавиться от сосущих пиявок жизнь.
А если серьезно, то легко делать что-то новое, чем копаться в старом. Чем больше все запутывается, тем больше разработчики боятся что-либо трогать. Ведь даже простые операции сопряжены с риском. Нежелание вносить изменения и улучшения резко снижает желание обслуживать систему.
Растущая сложность требует новых компетентностей. Страх охватывает разрабов, они не пишут тесты, не обладают навыками рефакторинга и не стремятся к простоте дизайна. Ведь они привыкли просто побежать, когда станет плохо. А у остальных падает производительность и моральный дух.
Выход один — избавиться от страха. Перестраховаться тестами, упростить, зарефакторить. Страх уходит. Человечность возвращается.
Демонстрация бесстрашной компетентности — лучший путь для эндорфинов
Есть 2 стула.
На одном сидит педальщик. Он разрабатывает новые экраны. Не любит легаси. Тащит либы. Его код изолирован от остального и никак не зависим. Идеальная работа. Нет ни рамок, ни ограничений. Как только стало плохо — он выложил резюме.
На втором стуле сидит он. В его глазах боль и слезы. Оставшиеся волосы на голове выстроили слово "Помогите". Каждые 2 минуты он издает животный рев, а некоторые давно забыли как выглядит тот человек, кто сел за этот проект. Да и забыли когда это было. Ведь никто не готов был взять то легаси, то изуродованное полотно дешевого кода. Прошлый разраб валил говна пару лет в гит, а теперь только беcстрашные безумцы взялись за эту работу.
Бесстрашная компетентность. Так бы Мартин назвал скилл, который нужен текущему разрабу. Ему нужно стать человеком. Избавиться от сосущих пиявок жизнь.
А если серьезно, то легко делать что-то новое, чем копаться в старом. Чем больше все запутывается, тем больше разработчики боятся что-либо трогать. Ведь даже простые операции сопряжены с риском. Нежелание вносить изменения и улучшения резко снижает желание обслуживать систему.
Растущая сложность требует новых компетентностей. Страх охватывает разрабов, они не пишут тесты, не обладают навыками рефакторинга и не стремятся к простоте дизайна. Ведь они привыкли просто побежать, когда станет плохо. А у остальных падает производительность и моральный дух.
Выход один — избавиться от страха. Перестраховаться тестами, упростить, зарефакторить. Страх уходит. Человечность возвращается.
Демонстрация бесстрашной компетентности — лучший путь для эндорфинов
🔥13
Каждый начинающий программист слышал о книгах Мартина. Трудно преуменьшить значимость его работ.
Только вот одна деталь. Не стоит торопиться бежать читать. В этом деле важна наваренность. Это блюдо требует медленного томления. У них нет терпения на незрелых. В их требованиях опыт и насмотренность.
Нарочито, названия этих книг начинаются с идеала. Идеальный тот, идеальный этот. Как планка, которую перепрыгивает лишь рекордсмен. Он выставляет завышенные с требования к атлетам. Они для тех, кто застрял в дешевых и быстрых решениях. Устал от рутины и траты времени на неэффективные, утомляющие процессы. Кто хочет бросить вызов себе.
Книги, как маяк. Плыть к нему дорого и далеко не всегда нужно обычному рынку.
О чем книга? О работе. Для тех, кто не нашел себя. Не определил для себя формулу идеальной компании:
- Как испытывать гордость за работу
- Как не умирать в легаси
- Навыки поддержки кода
- Софты для всех случаев жизни
- Планы в развитии
Тут есть над чем поспорить. И чему вдохновиться.
#books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
пока мы тут читаем книги. Какой-то чел выигрывает телеграм конкурсы по всем дисциплинам и языкам
https://contest.com/user/Hip-Hyena
https://contest.com/user/Hip-Hyena
👍12😁5🔥1😢1
Безмерно уважаю людей, любящих свою индустрию и вносящих в нее вклад.
Канал Вити знают сейчас все. Он набирает стремительный рост. Для меня он лучший в телеграме. Его подача оригинальная, полезная и интересная. Чувствуется авторство и душа, а не копирка и пересказ.
А еще он выигрывал телеграм конкурсы. В этот раз он тоже участвовал и сделал работу, которая заслуживает лучших оценок. Но все же получил крутой опыт и навыки в контесте.
Подробнее в этой статье
Канал Вити знают сейчас все. Он набирает стремительный рост. Для меня он лучший в телеграме. Его подача оригинальная, полезная и интересная. Чувствуется авторство и душа, а не копирка и пересказ.
А еще он выигрывал телеграм конкурсы. В этот раз он тоже участвовал и сделал работу, которая заслуживает лучших оценок. Но все же получил крутой опыт и навыки в контесте.
Подробнее в этой статье
👍12❤🔥3💯2❤1⚡1🔥1
Как сказал автор статьи: "Метатипы — это еще один пункт, который я использую каждый день, но не смогу объяснить на интервью".
Чтобы понять метатипы нужно перестать видеть типы, а смотреть на все, как инстанцы и экземпляры.
String тип “Hello World”
String.Type тип String.self
Когда String — это тип экземпляра, то String.Type это тип типа. Это и называется “метатипом”
- Знакомство с метатипами
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍4⚡2
Для кого-то Авито кажется маленькой компанией. Часто, когда я рассказываю, какие практики мы используем, какие крутые у нас процессы, какой стэк мы юзаем, многие удивляются.
Авито — это не маленькая компания. Это самый большой и популярный классифайд в мире. А значит и специалисты тут самые крутые.
Раз тема сейчас про практики написания кода, архитектуры и организацию, то поделюсь супер-крутым плейлистом
https://www.youtube.com/watch?v=YybfRrtjdXE&list=PLknJ4Vr6efQHD8qkPPosGQjqrZpTa7KQP
Авито — это не маленькая компания. Это самый большой и популярный классифайд в мире. А значит и специалисты тут самые крутые.
Раз тема сейчас про практики написания кода, архитектуры и организацию, то поделюсь супер-крутым плейлистом
https://www.youtube.com/watch?v=YybfRrtjdXE&list=PLknJ4Vr6efQHD8qkPPosGQjqrZpTa7KQP
YouTube
1.1 Код-ревью и читаемость кода. | Курс «Паттерны и практики написания кода»
Этот курс посвящен практикам и паттернам написания кода. Он будет полезен как начинающим, так и middle-разработчикам. Эти 12 видеороликов являются частью большого курса, созданного специально для студентов МАИ и успешно проведены в учебном заведении.
Первая…
Первая…
⚡6🔥6❤🔥2🐳1🏆1
Что такое архитектура?
Легче всего объяснить для чего нужна архитектура — это понять какие проблемы она решает.
При росте проекта появляется много связей между модулей. Связь становится настолько крепкой, что безполезненное удаление или изменение одного из них становится проблемой. Изменяя один модуль — мы затрагиваем другой.
❕ Хаотичные связи между модулями с ростом проекта усложняют поддержку, рефакторинг и добавление новых фичей в проект.
💪 Хорошая архитектура должна обладать:
- Сильной связанность (направленные на решение одной четкой задачи)
- Слабой зацепленностью (как можно менее зависимые от других модулей)
Связь представляет собой степень, в которой часть базы кода образует логически единую атомарную единицу.
Сцепление, с другой стороны, представляет собой степень, в которой одна единица независима от других. Другими словами, это количество соединений между двумя или более единицами. Чем меньше цифра, тем ниже сцепление.
Архитектура ПО — это описание модулей, компонентов и кирпичиков системы, описание того, как эти модули должны разрабатываться. И описание связей между этими модулями.
💻 Не нужно путать набор папочек и файликов в вашем проекте с архитектурой. Файловая система лишь часть архитектуры.
- Разница между сплоченностью и сцеплением
- Низкая связь и высокая сплоченность
- Архитектура ПО
Легче всего объяснить для чего нужна архитектура — это понять какие проблемы она решает.
При росте проекта появляется много связей между модулей. Связь становится настолько крепкой, что безполезненное удаление или изменение одного из них становится проблемой. Изменяя один модуль — мы затрагиваем другой.
- Сильной связанность (направленные на решение одной четкой задачи)
- Слабой зацепленностью (как можно менее зависимые от других модулей)
Связь представляет собой степень, в которой часть базы кода образует логически единую атомарную единицу.
Сцепление, с другой стороны, представляет собой степень, в которой одна единица независима от других. Другими словами, это количество соединений между двумя или более единицами. Чем меньше цифра, тем ниже сцепление.
Архитектура ПО — это описание модулей, компонентов и кирпичиков системы, описание того, как эти модули должны разрабатываться. И описание связей между этими модулями.
- Разница между сплоченностью и сцеплением
- Низкая связь и высокая сплоченность
- Архитектура ПО
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7🔥3❤🔥1💯1
Мощненький плейлист фронтовых примеров систем дизайна. От ленты фейсбука до чатов и календарей
upd: слово "фронтовые" звучит теперь пугающе
https://www.youtube.com/watch?v=5vyKhm2NTfw&list=PLI9W87-Dqn7j_x6QtR6sUjycJR7nQLBqT
upd: слово "фронтовые" звучит теперь пугающе
https://www.youtube.com/watch?v=5vyKhm2NTfw&list=PLI9W87-Dqn7j_x6QtR6sUjycJR7nQLBqT
YouTube
[Front End System Design] - Facebook News Feed
Episode 1 - Facebook News Feed
Facebook News Feed is a widespread problem for System Design for Front-End interviews. Let's try to design it. This is just my thoughts and it's not a guide on how to do that.
If you have any suggestions, please leave comments…
Facebook News Feed is a widespread problem for System Design for Front-End interviews. Let's try to design it. This is just my thoughts and it's not a guide on how to do that.
If you have any suggestions, please leave comments…
💯8❤🔥2
Не секрет, что многие часто путают архитектуры и дизайн системы, хотя это две части одного процесса. Эта путаница часто может выстрелить в ногу и поставить под угрозу весь процесс разработки.
Дизайн необходим для сбора требований и перевод их в реализацию.
Артефакты, которые ожидаются от дизайна систем:
Дизайн системы уже работает с деталями реализации, алгоритмами и структурами данных.
Хоть и дизайн, и архитектура являются двумя частями одного целого, но не весь дизайн относится к архитектуре. Роль архитектора не в знании деталей, а в знании общей картины.
- Разница между архитектурой и дизайном
- Разница между архитектурой и дизайном 2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Архитектура для бизнеса
В книге "System Architecture" есть такое понятие как Point of View (PoV). Какие же они бывают?
Архитектура — это визуализация нашей системы на модули, которые должны быть понятны всем. И также стэйкхолдерам. Бизнес должен понимать как мы работаем и какие взаимодействия происходят. Почему?
Допустим, у нас есть лицензии технологий, которые мы используем. Юристам нужно выровнять лицензии, с которыми мы работаем
Еще одна Point of View — это план проекта. А это значит деньги, сроки и риски. Хорошая визуализация нашей архитектуры помогает сделать хорошую аналитическую работу всем, а не только инженерам.
Хорошая архитектура и ее понятная визуализация напрямую влияет на оценку и стоимость.
В книге "System Architecture" есть такое понятие как Point of View (PoV). Какие же они бывают?
Архитектура — это визуализация нашей системы на модули, которые должны быть понятны всем. И также стэйкхолдерам. Бизнес должен понимать как мы работаем и какие взаимодействия происходят. Почему?
Допустим, у нас есть лицензии технологий, которые мы используем. Юристам нужно выровнять лицензии, с которыми мы работаем
Еще одна Point of View — это план проекта. А это значит деньги, сроки и риски. Хорошая визуализация нашей архитектуры помогает сделать хорошую аналитическую работу всем, а не только инженерам.
Хорошая архитектура и ее понятная визуализация напрямую влияет на оценку и стоимость.
🔥3👍1