Можете Вы не делать document.getElementById('newElementId');
и видеть, возвращает ли это true. В противном случае как Вы говорят, ожидают 100 мс и попробовали еще раз?
Обычно я стараюсь разделить проблему на два разных вопроса:
Например: при поиске самого дешевого автомобиля в наборе возможных автомобилей я бы определил «самый дешевый» как то, что, вероятно, хочет быть отдельной функцией, так как я, возможно, захочу изменить условия позже или применить ее также к внедорожникам, а «автомобиль» и «набор автомобилей» звучат как хорошие кандидаты для классов, которые мне понадобятся в проблемной области.
Чтобы установить эти:
В конце концов я перехожу от рисования этих отношений к псевдокоду и небольшим прототипам. чтобы поиграть и узнать, какие еще неизвестные ограничения появляются в описании проблемы.
Для небольших проектов кода я предпочитаю просто пойти и написать версию 0, создать все классы, которые, как мне кажется, мне понадобятся, и попытаться как-то заставить их работать вместе. Затем я останавливаюсь и полностью начинаю заново. Обычно это создает намного лучший проект.
I am a big fan of using SketchFlow to create wireframes and mock ups which really helps the over all design process of web/desktop apps. You can see it and touch it and prove that your ideas will actually work. I also like the mind-mapping (MindMeister) mentioned else where. Lately I try to avoid BDUF (big design up front) specifications these days!
На мой взгляд, вам следует придерживаться своей конечной цели. В большинстве случаев конечной целью является предоставление вашего результата вашему клиенту, вашему боссу, вашему коллеге.
, поэтому все, что вам нужно сделать, должно соответствовать цели. отпустить и доставить.
Я не думаю, что проектирование на бумаге - хорошая идея, это сделало вас слишком ленивым, чтобы выполнять какую-то практическую работу. На самом деле большинство проектов было слишком поздно, чтобы войти в фазу кодирования, многие глупые дизайнеры или архитекторы спорили о деталях, которых никогда не было в боевой комнате в течение нескольких недель. они задержали проект.
на самом деле вам следует узнать больше о разработке через тестирование, это не означает, что вы должны полностью следовать режиму, это мысль, чтобы научить вас, как эффективно использовать себя для достижения результатов.
Наконец,
Я считаю, что создание эскиза пользовательского интерфейса в первую очередь очень помогает в выяснении того, какие именно функции требуются. Затем мне нравится составлять список для каждого элемента пользовательского интерфейса и того, что он должен делать. После этого я обычно пишу схему базы данных ...
This is the order of how I do things:
1) Write a pseudocode in pencil. This where you can brainstorm ideas with yourself and others if necessary.
2)Write the algorithm outlining the objectives and how you will go about accomplishing those objectives.
3)If the project is small, simple and clear to you, you can ommit this step. Else, draw up a flow chart of th application.
4)Lastly, Start coding using your algorithm and flow chart as your guide.
Нет ничего лучше мини-блокнота в кармане пиджака, чтобы думать как можно скорее, я лично переключаюсь между mini-UML и точками. Быстро, просто, всегда под рукой.
edit: И у меня всегда есть страница / область, посвященная конкретным вариантам использования и действиям. Это позволяет мне вернуться и проверить, может ли система справиться с каждым из них.
TkInter обычно поставляется с Python
# File: hello1.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
. Если вы хотите что-то более естественное, вам нужно установить что-то вроде wxpython
from PyZenity import InfoMessage
InfoMessage('Stuff')
Я тестировал PyZenity как в Ubuntu, так и в Windows XP, и он работает в обоих.
Я читал, что Zenity - это только GTK +, но я пробовал его в Gnome и KDE, и он выглядит нативно в обоих. Однако порт в Windows не выглядит родным, поскольку в нем используется неправильная тема GTK?
Существуют также другие программы, такие как KDialog и Xdialog , которые могут быть связаны с аналогичным Веб-интерфейс Python, который может проверять и видеть, какие исполняемые файлы доступны, чтобы автоматически обо всем позаботиться? (Для KDialog также существует внешний интерфейс Ruby.)
Я также не знаю, работает ли PyZenity под OS X.
Однако порт в Windows не выглядит родным, поскольку в нем используется неправильная тема GTK?Существуют также другие программы, такие как KDialog и Xdialog , которые могут быть связаны с аналогичным Веб-интерфейс Python, который может проверять и видеть, какие исполняемые файлы доступны, чтобы автоматически обо всем позаботиться? (Для KDialog также существует внешний интерфейс Ruby.)
Я также не знаю, работает ли PyZenity под OS X.
Однако порт в Windows не выглядит родным, поскольку в нем используется неправильная тема GTK?Существуют также другие программы, такие как KDialog и Xdialog , которые могут быть связаны с аналогичным Веб-интерфейс Python, который может проверять и видеть, какие исполняемые файлы доступны, чтобы автоматически обо всем позаботиться? (Для KDialog также существует внешний интерфейс Ruby.)
Я также не знаю, работает ли PyZenity под OS X.
Это может помочь мне прояснить мою идею и подтвердить мой дизайн.Если программа больше (я имею в виду, скорее, как законченный продукт), вам может потребоваться получить некоторые отзывы от других, поскольку мысль одного человека не может охватить все. Нарисованный от руки эскиз все еще работает, пригласите больше людей, чтобы просмотреть его и дать вам несколько предложений, таким образом, вы можете значительно улучшить свой дизайн. Однако, если вашего друга нет рядом, вам может потребоваться отправить им набросок на бумаге по факсу (или, возможно, отсканировать бумажный эскиз и отправить по электронной почте).
Есть некоторые инструменты, которые могут помочь вам создать прототип пользовательского интерфейса, некоторые из них даже позволяют запускать моделирование пользовательского интерфейса (например, Axare и ForeUI), что будет очень полезно для сбора отзывов от других.
вам может понадобиться получить отзывы от других, поскольку мысль одного человека не может охватить все. Нарисованный от руки эскиз все еще работает, пригласите больше людей, чтобы просмотреть его и дать вам несколько предложений, таким образом, вы можете значительно улучшить свой дизайн. Однако, если вашего друга нет рядом, вам может потребоваться отправить им набросок на бумаге по факсу (или, возможно, отсканировать бумажный эскиз и отправить по электронной почте).Есть некоторые инструменты, которые могут помочь вам создать прототип пользовательского интерфейса, некоторые из них даже позволяют запускать моделирование пользовательского интерфейса (например, Axare и ForeUI), что будет очень полезно для сбора отзывов от других.
вам может потребоваться получить отзывы от других, поскольку мысль одного человека не может охватить все. Нарисованный от руки эскиз все еще работает, пригласите больше людей, чтобы просмотреть его и дать вам несколько предложений, таким образом, вы можете значительно улучшить свой дизайн. Однако, если вашего друга нет рядом, вам может потребоваться отправить им набросок на бумаге по факсу (или, возможно, отсканировать бумажный эскиз и отправить по электронной почте).Есть некоторые инструменты, которые могут помочь вам создать прототип пользовательского интерфейса, некоторые из них даже позволяют запускать моделирование пользовательского интерфейса (например, Axare и ForeUI), что будет очень полезно для сбора отзывов от других.
Для такого рода вещей я обычно набрасываю базовые UI, рисую (коробки на бумаге) модель предметной области и схему базы данных. Я всегда начинаю с бумаги, а затем, если чувствую, что это необходимо, экспортирую в visio / basalmiq.
It is largely depends on number of things and the most important one is what are you making.
1) The first step to me is to declare what are you making. Sound, simple? sometime is not. List down what you want the program to do. List what is the must-have, what is nice-to-have and what is ok-to-have (not much trouble to include).
2) The second step is to (at your best) identify what is the weakest link for the success of your project. If you are writing WebDB, what you should worry is web UI (transition from a page to another) and data model. If you are writing game, the rules of the game will be important. Or if the game is highly interfactive, then you should think of the interaction the flow of the game.
What you identified here is what you should spend time design it on paper.
Since identifying that will likely to require experience and you may not have (if you do, you will already know what to do, right :-D), you may come back to review it once in a while as project progress.
3) To avoid over-engineering, focus on modeling for understanding as oppose to modeling as documenting.
4) Once you understand more, try to create a small program to check if it is possible. If you, identify other critical but risky part.
5) Start small but always think about extension. To me, it is OK to think big but it is risky to do big.
Those are what I do. Hope it will give you some idea. :-D
Некоторые из моих «уловок»:
Сначала я использую отображение разума (например, MindMeister).
Затем я нахожу вероятные «трудные места» и делаю легкое прототипирование
Я бы использовал UML не потому, что он фактически является отраслевым стандартом, а потому, что он помогает вам систематизировать и документировать свои мысли, когда вы исследуете предметную область (личную или деловую). Бесплатный инструмент - ArgoUML.
Я бы издевался над пользовательскими интерфейсами как еще одним средством, помогающим понять и сообщить, что, по вашему мнению, вы хотели бы делать в своей системе. Отличный бесплатный вариант - Balsamiq Mockups.
И я бы сосредоточился в первую очередь на поведении, а в последнюю - на данных. См. Записи Ребекки Вирфс-Брок.
Желаем удачи! Марк