Редактура не равна проверке. Во всех книгах о технологиях (не только вашего издаения) в переводах – банальные опечатки, неточности. Одно прочтение их например, мной, равно как и моими коллегами, способно выявить все эти проблемы. Фишка тут в том, что для этого читать должен читатель, а не редактор (т.е. цель прочтения принципиально другая).
В зависимости от степени человеческого фактора в данной ситуации (scope распухал, потому что заказчик через своё аффилированное в компании лицо проталкивал больше функционала в итерацию? заказчик не способен адекватно оценить сложность реализации и ссылается на Васю, который за полцены сделает в два раза больше? можно придумать мноого разных вариантов...), может иметь смысл пойти к человеку выше CTO (CEO, собственники, board members) и проговорить ситуацию. Прорываться в самые вершины. Кроме того, делать это надо, только сперва обговорив этот шаг с CTO. Возможно, что CTO согласится пойти говорить туда об этом вместе с вами, возможно что и от собственного лица. Всё это, в основном, человеческий фактор. В этом решении:
1) вы действуете в интересах бизнеса,
2) вы сохраняете авторитет,
3) вы работаете на команду.
Вариант, когда команда – отстой – не рассматриваю, потому что ну не бывает так, особенно в данной ситуации.
Давно слежу и вдохновляюсь, спасибо за ваш труд!
На мой взгляд, должны были повлиять вот такие моменты.
1. Способы коммуникации: больше онлайна, нормальный интернет в моём Нижнем Новгороде заполучился только в 2007. Сейчас у нас огрномный выбор: тут тебе и тикеты на гитхабе, и почта с гугл.инбоксом, и slack. Google.Hangouts, из которого я так и не смог дёрнуть историю. Хотя логи ICQ с 2003 по 2013 у меня отлично хранятся до сих пор :) Хорошо или плохо такое разнообразие?
2. Модные течения: писать будем на Node.JS, или может быть возьмём его форк (пока ещё только один известен), или ничего не признаем кроме Эрланга, а какой из 100 фреймворков для клиента выберем? Руби уже не тот? На мой взгляд, в 2005 выбор инструментов был весьма скуднее.
3. Больше интересных работодателей, больше контрактников и фрилансеров (в силу удобства взаимодействия). Сейчас найти отличного исполнителя – это (часто) очень эффективно решаемая на биржах задача. Люди стали более мобильными, и более легко меняют места работы. Высокое проникновение ИТ в России в целом, много мест, где на тебя будет хороший спрос.
4. Методологический холивар: раньше как-то просто работали, вот есть цель, вот мы к ней движемся. И тесты, знаете ли, были, и планёрки. Теперь у вас большая проблема – 5 или 10 минут делать стендап, в 10 или 11 утра? Как там у нас считают лучшие мастера. А может быть ну его скрам, давайте по канбану? Скрамбан? Или вот давайте выберем одну из 25 доступных таск-трекеров. Сидишь на битбакет вместо гитхаба, верстаешь в ворде вместо маркдаун, ну ты странный. TDD/DDD/CQRS. И т.д.
То есть, возможность огромного выбора – это явно и хорошо, но явно и плохо. Обостряет, если хотите, аналитический паралич, провоцирует ненужные обсуждения и потери времени, обостряет субъективные суждения. Как-то так мне это видится. Поправьте ход моих мыслей, если я сильно не прав :)
Ребята, интересно было бы увидеть побольше новых (буквально – свежих) кейсов. Всё что на хабре, в основном, повторение белой и черной книги, ну и прочих ваших материалов. Они все отличные! Но давайте же и свежести, буду искренне благодарен. Но мне вот что интересно ещё было бы. Вы черпаете эти кейсы из России середины нулевых, а каков расклад кейсов России середины десятых? Можно было бы сравнить тогда-сегодня, ведь наверняка есть изменения.
Интересно, как насчёт производительности полученного сервера? Например, не пробовали запустить wrk на отдачу строки в духе «Hello world» и сравнить POCO-сервер и nginx-конфиг
Ноутбук для разработчиков не имеет смысла с объёмом памяти менее 16 Гб. Иначе вы просто теряете в производительности, многозадачности. Однако, если данная машина получит 16 – это будет интересный вариант.
Мой пример, конечно, упрощён. В вашем случае, как я понимаю, этот пример усложняется так, что вы ведёте два гроссбуха в разных БД и транзакции организуете на уровне вот этих вот БД. Верно?
Вопрос вот какой. Если имеются в виду двусторонние транзакции на счетах, тогда, в терминах классической ACID-БД с ORM-интерфейсом это будет выглядеть так:
Handle.GET("/transfer?f={?}&t={?}&x={?}", (int fromId, int toId, int amount) => {
Db.Transaction(() => {
Account source = Db.SQL<Account>("SELECT a FROM Account a WHERE AccountId = ?", fromId).First;
Account target = Db.SQL<Account>("SELECT a FROM Account a WHERE AccountId = ?", toId).First;
if (source.Balance < amount) {
statusDescription = "Insufficient funds on source account.";
statusCode = 400;
} else {
source.Balance -= amount;
target.Balance += amount;
statusDescription = "Transfer OK.";
statusCode = 200;
}
})
return new Response() {
StatusDescription = statusDescription,
StatusCode = statusCode
};
});
Соответственно, то, что вы предлагаете, выходит за пределы такой «двусторонности» и учитывает какие-то особенности именно финансовых операций? Или же вы предлагаете в качестве новизны некоторое решение для распределённых транзакций такого рода, вроде Google Spanner?
В современной разработке ПО всё-таки ценно, когда цели ставятся крупного калибра, а вот задачи для достижения этой цели сотрудники ставят себе и решают сами. Настрой на инициативных, самоорганизующихся сотрудников, ведущих проект к цели, кототрая хорошо всеми понимаема — примерно это принято называть скрамом, если не вдаваться в детали реализации. Ритма «расширенная встреча раз в неделю» для недельного планирования + ежедневные стендапы для самосинхронизации команды должно быть достаточно для многих IT-проектов. Но, да — ритм быть должен.
Есть какое-то название у этой формулы?
В целом понятно, что если A — баги, найденные Антоном, а B — Олей, то:
|A U B| = |A| + |B| — |A ∩ B| (просто формула включения-исключения).
По условию |A ∩ B| = 5, |A| = 15, |B| = 20, тогда
|A U B| = 15 + 20 — 5 = 30.
Если все баги — это C, то |A U B| in C, откуда:
|C| >= |A U B| = 30.
Чтобы получить оценку 60, речь идёт о каком-то правдоподобии, типа метода Лапласа для оценки популяции?
После 15 лет с ThinkPad окончательно перехожу на MBP 13".
Последним классическим продуктом для меня стал T430s, удалось взять минимальную конфигурацию с дисплеем HD+ 1440x900 (ноябрь 2013). Тем не менее, ходила ходуном клавиатура, пришлось проложить её изнутри самодельным бампером. Сразу после покупки: HDD переставлен в bay вместо CD-ROM, Intel SSD вставлен вместо HDD, доставлена память 16 гб вместо 4 гб, всё традиционно удобно, достаточно одной отвёртки и пары минут. Корпус — прочный, кремень.
До T430s брал T440s с тачскрином. 14" в высоком разрешении, все дела, но с HDD и 8 Гб ОЗУ (макс. 12 Гб). Всё это с довольно конским ценником порядка 70 т.р. Хотел докинуть ему SSD и памяти. Чтобы это сделать, необходимо отклепить 16 защёлок. Никаких больше шурупов, только дешёвый пластик и хардкор. Во время делатчинга 2 защёлки сломались, да и поцарапалась краска. Крышка дисплея довольно мягкая, продавливается легко. Ноутбук был сразу же отложен на продажу и позже продан с большим таким демпингом. Считаю, что новые модели ThinkPad не предназначены для какого-либо расширения, это вещь в себе. Как и mac, но mac я имею возможность взять с 1 Тб SSD и таки 16 Гб ОЗУ сразу.
Я был в Минске и мне очень понравилось. Считаю, что это отличный вариант для переезда тем, кто хочет, как автор, недалеко — но по-другому. Более по-европейски, что ли. Брест, например, не вызвал у меня такого же ощущения, видимо, сказывается удалённость его от центра. А вот Минск — да, да, да. С удовольствием вернусь туристом ещё не раз.
Другая часть списка – хорошие предприниматели, да. Фотки это всегда круто.
С 6 до 8 утра?
1) вы действуете в интересах бизнеса,
2) вы сохраняете авторитет,
3) вы работаете на команду.
Вариант, когда команда – отстой – не рассматриваю, потому что ну не бывает так, особенно в данной ситуации.
На мой взгляд, должны были повлиять вот такие моменты.
1. Способы коммуникации: больше онлайна, нормальный интернет в моём Нижнем Новгороде заполучился только в 2007. Сейчас у нас огрномный выбор: тут тебе и тикеты на гитхабе, и почта с гугл.инбоксом, и slack. Google.Hangouts, из которого я так и не смог дёрнуть историю. Хотя логи ICQ с 2003 по 2013 у меня отлично хранятся до сих пор :) Хорошо или плохо такое разнообразие?
2. Модные течения: писать будем на Node.JS, или может быть возьмём его форк (пока ещё только один известен), или ничего не признаем кроме Эрланга, а какой из 100 фреймворков для клиента выберем? Руби уже не тот? На мой взгляд, в 2005 выбор инструментов был весьма скуднее.
3. Больше интересных работодателей, больше контрактников и фрилансеров (в силу удобства взаимодействия). Сейчас найти отличного исполнителя – это (часто) очень эффективно решаемая на биржах задача. Люди стали более мобильными, и более легко меняют места работы. Высокое проникновение ИТ в России в целом, много мест, где на тебя будет хороший спрос.
4. Методологический холивар: раньше как-то просто работали, вот есть цель, вот мы к ней движемся. И тесты, знаете ли, были, и планёрки. Теперь у вас большая проблема – 5 или 10 минут делать стендап, в 10 или 11 утра? Как там у нас считают лучшие мастера. А может быть ну его скрам, давайте по канбану? Скрамбан? Или вот давайте выберем одну из 25 доступных таск-трекеров. Сидишь на битбакет вместо гитхаба, верстаешь в ворде вместо маркдаун, ну ты странный. TDD/DDD/CQRS. И т.д.
То есть, возможность огромного выбора – это явно и хорошо, но явно и плохо. Обостряет, если хотите, аналитический паралич, провоцирует ненужные обсуждения и потери времени, обостряет субъективные суждения. Как-то так мне это видится. Поправьте ход моих мыслей, если я сильно не прав :)
Соответственно, то, что вы предлагаете, выходит за пределы такой «двусторонности» и учитывает какие-то особенности именно финансовых операций? Или же вы предлагаете в качестве новизны некоторое решение для распределённых транзакций такого рода, вроде Google Spanner?
В современной разработке ПО всё-таки ценно, когда цели ставятся крупного калибра, а вот задачи для достижения этой цели сотрудники ставят себе и решают сами. Настрой на инициативных, самоорганизующихся сотрудников, ведущих проект к цели, кототрая хорошо всеми понимаема — примерно это принято называть скрамом, если не вдаваться в детали реализации. Ритма «расширенная встреча раз в неделю» для недельного планирования + ежедневные стендапы для самосинхронизации команды должно быть достаточно для многих IT-проектов. Но, да — ритм быть должен.
Там понятно дальше, полезные отылки к ЦПТ (обоснование того, насколько хорошо это работает).
В целом понятно, что если A — баги, найденные Антоном, а B — Олей, то:
|A U B| = |A| + |B| — |A ∩ B| (просто формула включения-исключения).
По условию |A ∩ B| = 5, |A| = 15, |B| = 20, тогда
|A U B| = 15 + 20 — 5 = 30.
Если все баги — это C, то |A U B| in C, откуда:
|C| >= |A U B| = 30.
Чтобы получить оценку 60, речь идёт о каком-то правдоподобии, типа метода Лапласа для оценки популяции?
Последним классическим продуктом для меня стал T430s, удалось взять минимальную конфигурацию с дисплеем HD+ 1440x900 (ноябрь 2013). Тем не менее, ходила ходуном клавиатура, пришлось проложить её изнутри самодельным бампером. Сразу после покупки: HDD переставлен в bay вместо CD-ROM, Intel SSD вставлен вместо HDD, доставлена память 16 гб вместо 4 гб, всё традиционно удобно, достаточно одной отвёртки и пары минут. Корпус — прочный, кремень.
До T430s брал T440s с тачскрином. 14" в высоком разрешении, все дела, но с HDD и 8 Гб ОЗУ (макс. 12 Гб). Всё это с довольно конским ценником порядка 70 т.р. Хотел докинуть ему SSD и памяти. Чтобы это сделать, необходимо отклепить 16 защёлок. Никаких больше шурупов, только дешёвый пластик и хардкор. Во время делатчинга 2 защёлки сломались, да и поцарапалась краска. Крышка дисплея довольно мягкая, продавливается легко. Ноутбук был сразу же отложен на продажу и позже продан с большим таким демпингом. Считаю, что новые модели ThinkPad не предназначены для какого-либо расширения, это вещь в себе. Как и mac, но mac я имею возможность взять с 1 Тб SSD и таки 16 Гб ОЗУ сразу.