среда, 6 июля 2016 г.

Как сравнить свой продукт с конкурентами?

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

Если исходить из этого, то конкурируем не мы, разработчики компонент, а разработчики приложений. Мы для "своих" разработчиков всего лишь предоставляем хорошие тулзы, что бы они быстро сделали впечатляющие прототипы и на прототипах прояснили все важные вопросы заказчиков. Если "наши" разработчики уже отстают от ХХХ (например https://blogs.msdn.microsoft.com/visualstudio/2016/06/28/webinar-build-cross-platform-apps-with-visual-studio-and-xamarin/ или https://blogs.msdn.microsoft.com/visualstudio/2016/06/16/apache-cordova-the-browser-based-workflow/), то можно конечно повыбирать и посравнивать, но эти "свои" уже начали думать "а не перейти ли на другие языки и технологии? как-то там уже все очень просто получается по презентациям, а то я хорошо знаю и умею винформс но все равно не получаю заказы из-за требования iOS/Android/clouds".

И если исходить из этого, то один только "рич" или один только "чарт контрол" или даже один только "грид" картину не меняет, все равно в приложении нужны риббон, навбар, tabbedmdi, разнообразные редакторы и их надо либо делать самому либо искать готовые. А приложение должно работать на iOS, Android, Win и надо много чего-то делать для этого. Да и само приложение должно работать без наличия собственных hardware серверов, на маленьких смартфонах или ноутах с данными в clouds/azure/xxx.

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

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

среда, 20 января 2016 г.

Юнит тесты...

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

            foreach(object obj in list) {
                comboBox.Items.Add(obj.Name);
            }

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

            foreach(object obj in list) {
                comboBox.Items.Add(HttpUtility.HtmlEncode(obj.Name));
            }

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

Однако недавно пришел другой клиент и сообщил, что моя программа замечательная, только некоторые символы его родного турецкого языка она превращает в "ü"... Видимо опять кодировка... Но тесты ведь ходят... Как же так?