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

Мне нужно реализовать push-уведомление для нашего приложения для Android с помощью Xamarin.

blockquote>
  • Я бы посоветовал вам использовать Firebase для мобильных push-уведомлений для Android, так как это продукт от Google, созданный для мобильных приложений. Для push-уведомлений вы будете использовать Firebase Cloud Messaging , также известную как FCM. Позаботьтесь о том, чтобы вы хорошо разбирались в том, как это работает, прежде чем приступить к написанию чего-либо, прочитайте документы, на которые он сам отвечает на большинство ваших вопросов.

Менеджер создает и назначает работу водителю. Версия приложения используется драйвером, в котором отображается список заданий и процессов задания до его завершения. Таким образом, когда менеджер назначил задание драйверу в веб-версии, он уведомит водителя в версии приложения о том, что «назначено новое задание». По сути, и веб, и приложение используют одну и ту же базу данных, после чего мы создали API (REST API в MVC C #) для подключения и получения данных из БД для использования в мобильном приложении.

blockquote>
  • Для этого вам нужно проверить, как работать с Firebase, используя Rest-API . Как только вы настроите Rest-API, а затем примените к нему свою бизнес-логику, все будет гораздо проще, чем вы могли себе представить.

Может кто-нибудь порекомендовать мне, какой плагин push-уведомлений (плагин или NuGet) мне следует использовать для этого?

blockquote>
  • Моя рекомендация довольно проста, не используйте плагин для push-уведомлений в firebase !. У меня было очень плохое прошлое с плагинами, и с тех пор я никогда не рекомендую коллегам-разработчикам использовать плагины, пока они не будут в хорошем состоянии. Я бы скорее попросил вас просто настроить Firebase на основе руководств, которые доступны онлайн. Как и в следующем Xamarin. Руководство для Android для FCM . Подробно он содержит все, что вы ищете, и что еще я бы посоветовал вам проверить ответы, связанные с firebase, на SO, и вы обнаружите, что почти все, что не доступно в документации, описано здесь и подробно. Например:

Как обрабатывать уведомления Firebase, то есть уведомления и сообщения данных

Push-уведомления в Android с помощью firebase get token

Как отправлять сообщения с устройства на устройство с помощью Firebase Cloud Messaging?

Получать push-уведомления на одно приложение для Android из двух проектов Firebase

6
задан skaffman 18 February 2012 в 10:16
поделиться

7 ответов

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

Во-вторых, я действительно нахожу это довольно замечательным, что программисты опыта 20 лет не понимают реляционных баз данных и транзакций. Кодирование плоского файла вышло из господствующей тенденции очень давно - я сначала обработал реляционные базы данных в коммерческом задержании в 1988, и они были довольно распространены к середине 90-х. Какой сектор и тип продукта - Вы продолжать работать? Звучит возможным мне, что Вы могли бы иметь дело со своего рода встроенной или в других отношениях 'необычной' системой, в этом случае необходимо удостовериться, что у Вас нет своего рода проблемы связи, и Вы пропускаете большого слона, на которого не указали Вам - Вы не будете первым 'консультантом', приведенным в команду, которая была создана некоторым способом, не будучи питаемым соответствующая информация. Это сказало, что такие архаичные магазины действительно все еще существуют - один из моих текущих клиентских системных интерфейсов к основанной на плоском файле системе, кодированной в КОБОЛе, и да, это - ад для управления ;-)

Наконец, если Вы абсолютно уверены в своей земле, и Вы сталкиваетесь с командой, которая не примет Ваши рекомендации - и демонстрационный код является хорошей идеей, если можно сэкономить время - затем необходимо будет, вероятно, принять решение с достоинством и переместить то. Самостоятельно в этом положении я попытался бы абстрагировать проблему - обновления базы данных могут быть перемещены в хранимые процедуры, например, таким образом, код для обновления обеих таблиц находится в SP и может быть изменен позднее для перемещения в схему без соответствующего изменения приложений? Удостоверьтесь, что Ваши аргументы хорошо зарегистрированы и зарегистрированы так, можно пересмотреть их, позже должен возможность возникать.

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

7
ответ дан 8 December 2019 в 12:23
поделиться

Иногда Вы не можете.

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

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

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

4
ответ дан 8 December 2019 в 12:23
поделиться

Когда-то лучшим аргументом является пример. Я записал бы прототип (или замена если не слишком много работы). С примером для исследования его будет легче видеть за и против реляционной базы данных.

Как в стороне, базы данных на основе плоских файлов имеют свои места, так как их настолько легче "администрировать", чем истинная реляционная база данных. Отнестись непредвзято.;-)

4
ответ дан 8 December 2019 в 12:23
поделиться

Я думаю, что Вам, вероятно, придется подать пример - когда люди видят, что "новым" путем является меньше работы, они примут его (как долго, поскольку Вы не потираете их носы в него).

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

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

3
ответ дан 8 December 2019 в 12:23
поделиться

Зарегистрируйтесь их в некотором достойном обучении и затем Вам решать убедить их, что с новыми технологиями намного больше возможно (или по крайней мере легче!).

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

Связанное сообщение здесь.

0
ответ дан 8 December 2019 в 12:23
поделиться

The following may not apply in yr situation, but you make very little mention of technical details, so I thought I'd mention it...

Sometimes, if the access patterns are very different for current data than for historical data (I'm making this example up, but say that Current data is accessed 1000s of times per second, and accesses a small subset of columns, and all current data fits in less than 1 GB, whereas, say, historical data uses 1000s of GBs, is accessed only 100s of times per day, and access is to all columns),

then, what your co-workers are doing would make perfect sense, for performance optimization. By separating the current data (albiet redundantly) you can optimize the indices and data structures in that table, for the higher frequency access paterns that you could not do in the historical table.

Not everything that is "academically", or "technically" correct from a purely relational perspective makes sense when applied in an actual practical situation.

0
ответ дан 8 December 2019 в 12:23
поделиться

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

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

Однако вы должны быть осторожны.

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

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

Часто требования к ведению журнала транзакций превышают уровень, который может выполнять ваша СУБД. Довольно часто может возникнуть необходимость выйти за рамки семантики транзакции БД, чтобы обеспечить правильность временной последовательности, однократное и только однократное обновление, устойчивость и неотказуемость.

И это даже не касается проблем, связанных с масштабируемость предприятия или предприятия. Когда вы начнете приближаться к полумиллиону сложных транзакций в день, вы обнаружите, что технология РСУБД вас не устраивает. Поскольку реляционные базы данных не предназначены для обработки больших объемов транзакций, вам часто приходится отказываться от стандартных парадигм нормализации и обновления. Обычные методы блокировки РСУБД могут разрушить масштабируемость, независимо от того, сколько оборудования вы используете для решения проблемы.

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

И между прочим: существуют и другие модели помимо РСУБД, и альтернативой РСУБД не обязательно являются «плоские файлы» - вопреки опыту большинства современных программистов. Существуют транзакционные иерархические СУБД, которые могут обрабатывать гораздо более высокую пропускную способность, чем СУБД. IMS все еще активно используется, например, в крупных магазинах IBM. Другие поставщики предлагают подобное программное обеспечение для разных платформ.

Конечно, в магазине из 4 человек, возможно, ничего из этого не применимо.

1
ответ дан 8 December 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: