В последнее время я начал задаваться вопросом, как получить информацию о распространенных ошибках программирования, чтобы создать новые правила для помощника. Меня поразило, на самом деле я могу использовать StackOverflow. Поэтому я выбираю TypeScript (и Angular) в качестве отправной точки, чтобы выяснить, можно ли сопоставить StackOverflow в качестве базы проблем и предоставить помощь в кодировании в реальном времени с помощью Visual Studio Code Assistant. Ниже вы увидите 5 самых популярных проблем с Angular, которые Assistant может решить в режиме реального времени при кодировании:

1. Невозможно выполнить привязку к «ngModel», так как это неизвестное свойство «ввода».

1414 голосов на StackOverflow. Если вы хотите выполнить привязку к ngModel, вы получите сообщение об ошибке: Невозможно выполнить привязку к ngModel, так как это неизвестное свойство input. Не сказано, каково решение. С Ассистентом становится понятно.

Правило помощника:

{
   "regex": "\\[\\(ngModel\\)\\]",
   "message": "Make sure to add FormsModule to imports inside app.module.ts"
}

Результат:

2. В конструкторе не должно быть кода (чаще всего)

Есть несколько причин, по которым конструктор не должен содержать код в Angular. Подробнее об этом можно прочитать в этой статье и в этом вопросе StackOverflow с 1104 голосами.

Правило помощника:

{
   "regex": "constructor\\(\\)",
   "message": "Constructor should not contain code (without v. good reason)"
}

Результат:

3. Невозможно выполнить привязку к «formGroup», так как это неизвестное свойство «формы».

При использовании formGroup многие люди (833 голоса на StackOverflow), кажется, не знают, как заставить его работать. Они получают сообщение об ошибке: Невозможно выполнить привязку к «formGroup, так как это неизвестное свойство формы».

Правило помощника:

{
   "regex": "\\[formGroup\\]",
   "message": "Make sure to add ReactiveFormsModule to imports inside app.module.ts"
}

Результат:

4. Нет провайдера для HttpClient

376 человек проголосовали за вопрос об ошибке, указывающей на отсутствие провайдера для HttpClient. Это легко. Но мы можем сделать это более понятным с Ассистентом:

Правило помощника:

{
   "regex": "HttpClient",
   "message": "Make sure to add HttpClientModule to app.module.ts imports"
}

Результат:

5. Невозможно выполнить привязку к «formGroup», так как это неизвестное свойство «ввода».

Аналогичная проблема, как и в пункте 3. Проголосовало 369 пользователей. Это уже охвачено правилом, упомянутым в пункте 3.

Вывод

Как видите, можно сопоставить знания StackOverflow с помощью в кодировании в реальном времени. Поскольку Visual Studio Code Assistant не зависит от языка и фреймворка, вполне вероятно, что тот же подход можно использовать для преобразования знаний о проблемах других языков и фреймворков в помощь в режиме реального времени.

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

В настоящее время расширение используется 92 программистами по всему миру. На 21% больше за одну неделю!

Присоединяйтесь к сторонникам Ассистента!

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

Помощник поддержки на Патреоне за 3$

Ссылки

Ознакомьтесь с моими предыдущими статьями, в которых я подробно рассказываю об Ассистенте.

Помощник по установке