Рубрики
Без рубрики

2 лучших инструмента, которые могут помочь вам решить ЛЮБУЮ проблему разработки программного обеспечения

Автор оригинала: Vlad Mihalcea.

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

Давайте сначала начнем с очень приятной проблемы. Как уже объяснялось в этом посте , некоторые системы баз данных (например, MySQL, SQL Server) позволяют получать физические блокировки предикатов при сканировании диапазона, чтобы никакая другая транзакция не могла изменить заблокированный диапазон.

MySQL

Давайте попробуем это в MySQL и посмотрим, блокирует ли блокировка предикатов вставку в том же диапазоне строк:

Так как мы заблокировали все строки сотрудник для department_id со значением 1 , Оператор ВСТАВКИ Боба будет заблокирован в ожидании, пока Алиса снимет блокировку, что она и делает в конце своей текущей транзакции.

Однако, если мы попытаемся добавить новую запись сотрудника в отдел номер 3 , мы можем это сделать, так как блокировка предиката влияет только на сотрудника(ов) , принадлежащего к первому отделу:

Пока все идет так хорошо!

SQL Server

Давайте посмотрим, что произойдет, когда мы переключимся на SQL Server. Первый пример работает так, как и ожидалось. Однако второй вариант использования дает следующий результат:

Почему блок ВСТАВКИ Боба, поскольку нет перекрытия между заблокированным диапазоном departement_id и department_id , который используется входящим оператором INSERT?

Как ты это выясняешь, верно? Вы начинаете читать документацию по SQL Server в надежде найти правильный ответ, но что, если вы все еще не можете понять, почему SQL Server ведет себя так в данном конкретном сценарии?

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

Стековый поток

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

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

Вот что я сделал, и здесь вы можете найти мой вопрос StackOverflow .

Менее чем за 30 минут я уже получил два очень хороших ответа, которые объясняют, почему SQL Server вел себя именно так.

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

Сразу после того, как я задал вопрос о StackOverflow, я хотел бы обратиться ко второму лучшему инструменту для решения любой проблемы разработки программного обеспечения: Twitter .

Твиттер

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

Итак, я также задал вопрос в Твиттере, и угадайте, кто ответил в ответ?

Привет, Влад, спасибо, что связался! Оба ответа верны.

Официальная учетная запись SQL Server подтвердила правильность обоих ответов. Как это круто!

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

2 Лучших инструмента для решения ЛЮБЫХ проблем разработчиков программного обеспечения-это социальные инструменты, и это не должно удивлять. Мы все социальные существа, и мы эволюционировали, чтобы полагаться друг на друга всякий раз, когда у нас возникают проблемы.

Так что не стесняйтесь обращаться за помощью! Все очень просто.