На K.I.S.S и прокладывающий cowpaths [закрытый]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

14
задан Aziz Shaikh 23 November 2012 в 12:16
поделиться

14 ответов

Абсолютно Вы на правильном пути. Если Вы не абстрагируете далеко безумие, то Вы в конечном счете уступите безумию сами.

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

Это не о хранении его просто, это о модифицировании прочной основы для здания.

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

22
ответ дан 1 December 2019 в 06:39
поделиться

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

5
ответ дан 1 December 2019 в 06:39
поделиться

Я не сказал бы, что Вы усложняете вещи.

книжный Домен Eric Evan Управляемый Дизайн имеет прекрасный термин для этого: Анти-Уровень

Повреждения
5
ответ дан 1 December 2019 в 06:39
поделиться

Для проигрывания Адвоката Дьявола существует что-то, чтобы быть сказанным для того, чтобы не иметь ненужный слой косвенности в загрузке кратковременной памяти для работы с системой. Однажды знакомый с кодом, Вы будете знать то, что входит, какая переменная, таким образом, основное преимущество является кому-то новым забиранием кода с нуля. Однако решение той проблемы правильно также потребовало бы согласовывания схемы базы данных, которая (a) была бы значительным собранием произведений и (b) в основном заставила бы проблему уйти.

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

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

3
ответ дан 1 December 2019 в 06:39
поделиться

Просто создайте представления, где это больше всего необходимо.

2
ответ дан 1 December 2019 в 06:39
поделиться

Это - хороший вопрос, поскольку он говорит с основой о кодировании, по моему скромному мнению.

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

1
ответ дан 1 December 2019 в 06:39
поделиться

Вы не сказали, что не можете переименовать столбцы в Доступе, так.... сделать это! Другая возможность состояла бы в том, чтобы создать представления для каждой таблицы и переименовать столбцы в представлении. Затем вместо того, чтобы работать с таблицей Employees, Вы работаете с представлением vEmployees. Если я вспоминаю правильно, Доступ позволяет Вам обновить представления, а также выбор от них. Если Вы используете ORM с PHP, который не может поддерживать представления обновления как бы то ни было.

1
ответ дан 1 December 2019 в 06:39
поделиться

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

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

1
ответ дан 1 December 2019 в 06:39
поделиться

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

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

1
ответ дан 1 December 2019 в 06:39
поделиться

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

В любом случае то, что Вы делаете, улучшает гибкость Вашего полного решения.

, Конечно, я все еще сказал бы, что KISS относится к методу Вашего отображения!

1
ответ дан 1 December 2019 в 06:39
поделиться

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

точка Вашего коллеги не должна сверхусложнять вещи. Это допустимо, также.

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

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

1
ответ дан 1 December 2019 в 06:39
поделиться

Почему бы не создать datalayer с классами, которые отображаются на каждой таблице. Затем можно определить методы класса получить доступ к столбцам и дать методы безотносительно имен, которые Вы хотите. Затем datalayer код доступа к базе данных является единственной вещью, которая должна знать о реальных именах столбцов. Я подозреваю, что кто-то (возможно, несколько soneones) уже разработал платформу, чтобы сделать это. Google "php orm".

1
ответ дан 1 December 2019 в 06:39
поделиться

Используйте ORM, Вы будете изменять дб скоро...

0
ответ дан 1 December 2019 в 06:39
поделиться

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

0
ответ дан 1 December 2019 в 06:39
поделиться
Другие вопросы по тегам:

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