Основная цель toString - создать строковое представление объекта, означает, что возвращаемое значение всегда является строкой. В большинстве случаев это просто класс объекта и имя пакета, но в некоторых случаях, таких как StringBuilder, вы получите фактически текст String.
Получение кого-то нового для рассмотрения его.
Если его слишком твердое для тестирования дизайн является слишком сложным. Это - первая метрика, которую я использую.
Вот некоторые идеи получить более более простой дизайн:
Я создаю дизайн и т.д., и затем я смотрю на него и пытаюсь удалить (агрессивно) все, что, кажется, не необходимо. Если оказывается, что мне нужен он позже, когда я полирую дизайн, я добавляю, что это въезжает задним ходом. Я делаю это по нескольким повторениям, совершенствовав, поскольку я продвигаюсь.
Считайте "Работу Эффективно С Унаследованным кодом" Michael C. Feathers.
точка, если у Вас есть код, который работает, и необходимо изменить дизайн, ничто не работает лучше, чем создание тестируемого элемента кода, и взлом кода в мелкие кусочки.
По моему опыту, разработка для чрезмерно общего случая имеет тенденцию порождать слишком много сложности.
Техническая культура поощряет проекты, которые делают меньше предположений о среде; это обычно - хорошая вещь, но некоторые люди берут ее слишком далеко. Например, это могло бы быть хорошим, если Ваш автомобильный дизайн не принимает определенную гравитацию, никто на самом деле не собирается водить Ваш автомобиль на луне, и если бы они сделали, то это не работало бы, потому что нет никакого кислорода, чтобы заставить топливо гореть.
трудная часть - то, что парень, который разрабатывается дизайн "works-on-any-planet", часто рассматривается как умный, таким образом, Вам, вероятно, придется работать усерднее, чтобы утверждать, что его дизайн также умен.
компромиссы Понимания, таким образом, можно принять решение между хорошими предположениями и плохими предположениями, будут иметь большое значение в предотвращение напрасно сложного дизайна.
Использование Разработки через тестирование и после Robert C. Martin Три Правила TDD:
Таким образом Вы вряд ли получите много кода, в котором Вы не нуждаетесь. Вы будете всегда фокусироваться на создании одной важной вещи работа и никогда не будете добираться также далеко впереди себя с точки зрения сложности.
Тест сначала может помочь здесь, но это не подходит для всей ситуации. И это не панацея так или иначе.
Запускаются маленький , другая прекрасная идея. Необходимо ли действительно наполнить все 10 шаблонов разработки в эту вещь? Попытайтесь сначала сделать это "глупый путь". Не вполне сокращает его? Хорошо, сделайте это "немного менее глупый путь". И т.д.
Получают его, рассмотрел . Как кто-то еще записал, две пары глаз лучше. Еще лучше два мозга. Ваш помощник может просто видеть комнату для упрощения, или проблематичная область, Вы думали, была прекрасна просто, потому что Вы проводите много часов, взламывая его.
Использование склоняются язык. Языки, такие как Java или иногда C++ иногда, кажется, поощряют противные, замысловатые решения. Простые вещи имеют тенденцию охватывать по нескольким строкам кода, и просто необходимо пользоваться 3 внешними библиотеками и большой платформой для управления всем этим. Рассмотрите использование Python, Ruby, и т.д. - если бы не Ваш проект, затем для некоторого личного пользования. Это может изменять Ваше мышление , чтобы способствовать простоте и быть гарантированным, что простота возможна.
Это неизбежно, после того как Вы были программистом, что это произойдет. Если Вы серьезно имеете непредполагаемый усилие или поражаете проблему, где Ваше решение просто не работает затем кодирование остановки и добирается говорящий с Вашим менеджером проектов. Мне всегда нравится брать решения со мной на встречу, проблемой является A, можно сделать x, который займет 3 дня, или мы можем попробовать y, который займет 6 дней. Не делайте выбор сами.
Это - тонкое уравновешивание: с одной стороны, Вы не хотите что-то, что занимает слишком много времени к разработке и реализации, с другой стороны, Вы не хотите взлом, который не является сложным достаточно для контакта с проблемой следующей недели, или еще хуже требует, чтобы перезапись адаптировалась.
Несколько методов я нахожу полезными:
, Если бы что-то кажется более сложным, чем Вы, хотел бы, затем никогда не садятся для реализации его, как только Вы закончили думать об этом. Найдите, что что-то еще делает для остальной части дня. Многочисленные времена я заканчиваю тем, что думал о другом решении начала проблемы, которая удаляет большую сложность позже.
В том же духе имеют кого-то еще, кого можно возвратить идеи прочь. Удостоверьтесь, что можно объяснить им, почему сложность выравнивается по ширине!
, Если Вы добавляете сложность, потому что Вы думаете, что она будет выровнена по ширине в будущем затем, пытаются установить , когда в будущем Вы будете использовать ее. Если Вы не можете (реалистично) предположить нуждаться в сложности в течение года, или три затем это, вероятно, не допустимо для оплаты за него теперь.
Уменьшите объем данных, с которым Вы работаете путем сериализации задачи в серию меньших задач. Большинство людей может только держать полдюжины (плюс или минус) условия в их голове при кодировании, поэтому сделайте это единицей реализации. Дизайн для всех задач, которые необходимо выполнить, но затем безжалостно взломать дизайн так, чтобы Вы никогда не играли больше чем с полдюжиной путей хотя модуль.
Это следует из сообщения Bendazo - упрощают, пока это не становится легким.
Я спрашиваю своих клиентов , почему им нужна некоторая функция. Я пытаюсь добраться до сути относительно их запроса и определить проблему, которую они испытывают. Это часто предоставляет себя простому решению, чем я (или они) думал бы.
, Конечно, если Вы знаете привычки работы своих клиентов и какими проблемами они должны заняться, можно понять их проблемы намного лучше с самого начала. И если Вы "знаете их", знают их, затем Вы понимаете их речь лучше. Так, развейте близкие рабочие отношения со своими пользователями. Это - нуль шага разработки.
Займите время, чтобы назвать понятие системы хорошо и найти имена, которые связаны, это делает систему более знакомой. Решайтесь переименовывать понятия, чем лучше соединение с миром Вы знаете, тем лучше Ваш мозг может работать с ним.
Просят мнения от людей, которые получают их удары от чистых, простых решений.
Только понятия реализации, необходимые текущему проекту (требование того, чтобы соответствовать требованиям завтрашнего дня или универсальные системы делает Ваш дизайн чрезмерно увеличенным в размере).