Форум: "Прочее";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизРешил сделать доклад для руководства :) послали&#133 Найти похожие ветки
← →
Юрий Зотов © (2008-01-16 12:17) [40]Если чел всерьез считает, что он всегда пишет абсолютно безошибочный код, то это означает, что опыта у него маловато. Поэтому до крутого спеца он еще недотягивает.
← →
Kerk © (2008-01-16 12:19) [41]Юрий Зотов © (16.01.08 01:08) [20]
> ПМ - это пистолет Макарова?
Проджект Менеджер :)) хотя, в принципе, смысл похожий :)
"________ программисты настолько суровые, что у них есть машина времени, чтобы они могли сделать свои задачи еще вчера" (с)
← →
calm © (2008-01-16 18:54) [42]
> пишу подсистему расписания для ИС ВУЗа
Хо-хо.. в нашем городе в одному ВУЗе постоянно на фултайме за деньги(!) работает 1-2 человека на ИС для ВУЗа. И конца края не видно.
А автору посоветую начать внедрение умных мыслей с себя. Т.е. самому вести документацию по своему коду. При получении задания от старших товарищей рисовать на бумажке и спрашивать, я мол, правильно понял, что вот так надо и т.д.?
Либо свою жизнь улучшишь (как минимум), либо поймешь, почему дело в конторе обстоят имеено так, а не иначе.
← →
calm © (2008-01-16 18:55) [43]А с докладом для руководства, ты Колян, погорячился. Не будут они junior"а слушать. Независимо от того, есть у него полезные мысли или нет.
← →
ketmar © (2008-01-16 19:12) [44]>[43] calm ©(16.01.08 18:55)
>А с докладом для руководства, ты Колян, погорячился. Не будут они
>junior"а слушать.
и это, ящитаю, верх идиотизма.
← →
Kolan © (2008-01-16 19:13) [45]> и это, ящитаю, верх идиотизма.
Доклад?
← →
ketmar © (2008-01-16 19:22) [46]>[45] Kolan©(16.01.08 19:13)
>>и это, ящитаю, верх идиотизма.
>Доклад?
нет. фильтрация выслушивания по сроку работы.
← →
PEAKTOP © (2008-01-16 20:02) [47]> Игорь Шевченко © (16.01.08 10:50) [32]
Мдя, блин... Джон Уинстон Леннон рулит. Плюс адын ! :)
Вот смотрю тут на junior-ов, которые про ТЗ спорят, и себя вспоминаю до того момента, как жисть научила торговать. Ну составили вы ТЗ, ну попытались сдать объект строго по ТЗ, ну остался заказчик недоволен. Может, он вам и заплатит, только не вернется заказчик к вам.
И что Вы, измените мир этим ? - Нет, Вы оставите поле для деятельности таким, как Я. А от Меня заказчики не уходят. И безо всякого ТЗ, договора и вообще какой-либо документации, подтверждающей наши с заказчиком взаимоотношения.
← →
ketmar © (2008-01-16 20:24) [48]>[47] PEAKTOP©(16.01.08 20:02)
>безо всякого ТЗ, договора и вообще какой-либо документации,
>подтверждающей наши с заказчиком взаимоотношения.
где храм? куда ходить на тебя молиццо?
← →
Loginov Dmitry © (2008-01-16 20:46) [49]> [31] Sergey13 © (16.01.08 10:44)
> > [0] Kolan © (15.01.08 22:25)
>
> Я не знаю условий работы в твоей конторе, но с другой стороны
> лично встречал нескольких "молодых революционеров", которые
> ничего не умея сами желали все переделывать "в глобальном
> масштабе". Я не говорю, что ты такой, просто хотелось бы
> предостеречь от поспешных выводов.
> Иногда "со своей колокольни" видится несколько искаженная
> катрина мира.
+1
Сам через это года полтора назад проходил. Сперва все выглядело ужасно! Работало криво! Хотелось все переделать! Но мне повезло - попался мудрый руководитель :) Спланировано все было так, что первые пол-года было некогда коренным образом переделывать существующие исходники - разрабатывалось что-то новое. А после дурацкие мысли о глобальных переделках ушли сами собой.
Если программа работает как положено, но код ужасно написан, то даже думать не нужно о коренных переделках. А вот если она то там, то тут валится и глючит - нужно разбираться в причинах и исправлять (возможно с попутной переделкой отдельных модулей). Переписывать в любом случае не стоит. Все сказанное касается, конечно серьезных систем. Децкие поделки не рассматриваются.
← →
VirEx © (2008-01-16 21:49) [50]
> [49] Loginov Dmitry © (16.01.08 20:46)
> Но мне
> ... повезло - попался мудрый руководитель :) ...
скорей попался тебе хороший психолог :)
← →
Anatoly Podgoretsky © (2008-01-17 00:04) [51]Наверно он готовит новое место работы.
← →
Kolan © (2008-01-17 15:50) [52]Оооооо :)
Согласились, сами, завтра ставим Mantis :)
← →
ketmar © (2008-01-17 16:05) [53]>[52] Kolan©(17.01.08 15:50)
это поделка, у которой на сайте финтифлюшечки и snaps.com? бедные…
← →
Kolan © (2008-01-17 17:42) [54]> это поделка, у которой на сайте финтифлюшечки и snaps.com?
> бедные…
Не это:
http://mantisbt.org/
Суслик присоветовал — я доволен.
← →
ketmar © (2008-01-17 17:51) [55]>[54] Kolan©(17.01.08 17:42)
а я о ней и говорю.
← →
Kolan © (2008-01-17 18:02) [56]> а я о ней и говорю.
И чте не так в ней?
← →
ketmar © (2008-01-17 18:08) [57]>[56] Kolan©(17.01.08 18:02)
а фиг знает. интерморда уродская, отбивает всё желание пробовать. какая морда — такой и код, вестимо.
← →
Черный Шаман (2008-01-17 20:37) [58]
> ketmar © (16.01.08 20:24) [48]
>
> >[47] PEAKTOP©(16.01.08 20:02)
> >безо всякого ТЗ, договора и вообще какой-либо документации,
>
> >подтверждающей наши с заказчиком взаимоотношения.
> где храм? куда ходить на тебя молиццо?
Зачем. Обычный паттерн-понимания - "устами младенца". Заказчик рассказывает что он хочет. Потом ты подробно, как младенцу, рассказываешь заказчику что он хочет. В результате достигаете консенсуса. В 90% случаев такое устное ТЗ самое эффективное. Кроме того тот же принцип используется с пользователями системы, работающими у заказчика.
Если заказчику лень тебя выслушивать и тратить своё время, то он и получает "нечто", но это уже его проблемы.
← →
Kolan © (2008-01-17 21:52) [59]> Черный Шаман
Главное когда сядешь код писать незабыть все что наговорили, да? :)
← →
Черный Шаман (2008-01-17 22:18) [60]
> Kolan © (17.01.08 21:52) [59]
>
> > Черный Шаман
>
> Главное когда сядешь код писать незабыть все что наговорили,
> да? :)
Я диаграмки в процессе с пунктами на бумаге рисую. Только для себя, никакой красоты. Удобнее тем что не нужно придерживаться стандартов UML да и вообще никаких стандартов. А для тебя оно ясно как полная диаграмма классов на А1, причём, заверенная заказчиком.
← →
Kolan © (2008-01-17 22:52) [61]> диаграмма классов заверенная заказчиком
0_o охо, крутые заказчики :)
Есть подозрение что разрабатываешь ты программы в одиночку, угодал?
← →
Nic © (2008-01-18 00:00) [62]
> calm © (16.01.08 18:54) [42]
>
> > пишу подсистему расписания для ИС ВУЗа
>
> Хо-хо.. в нашем городе в одному ВУЗе постоянно на фултайме
> за деньги(!) работает 1-2 человека на ИС для ВУЗа. И конца
> края не видно.
Я на пол ставки на кафедре работаю. Взял подсистему, оставленную другим разработчиком, который не довёл её до ума. Покопал-покопал. Решил с 0 делать, т.к. в тех исходниках чёрт ножки переломает и захлебнётся. За 2,5 месяца практически всё уже готово. Ещё какое-то время поотлаживать - конфетка будет. При том, что делалось всё в очень размеренном темпе и без начального опыта работы с БД. Всё можно было бы сделать за 1-2 недели если не быстрее... если бы зарплата была бы реальной, а не символической и если бы был хотя бы примерный ТЗ.
← →
Sandman25 (2008-01-18 08:49) [63]Решил с 0 делать, т.к. в тех исходниках чёрт ножки переломает и захлебнётся
Вот поэтому должно быть и ТЗ, и ТП, и Инструкция администратора, и Инструкция пользователя. Потому как принцип самосвала никто не отменял.
Зы. Для тех, кто не знает, принцип самосвала - сколько нужно самосвалов, сбивающих сотрудников, чтобы проект стал неудачным?
← →
Searcher (2008-01-18 10:33) [64]дайте ссылку на mp3 Ленона из [32], а то везде одни регистрации)
← →
Dennis I. Komarov © (2008-01-18 10:43) [65]> Ещё какое-то время поотлаживать - конфетка будет.
+
> и без начального опыта работы с БД.
Поверь, через некоторое время конфетка растает :)
← →
Павел Калугин © (2008-01-18 11:42) [66]> [46] ketmar © (16.01.08 19:22)
верх идиотизма это когда стажер имеет прямой доступ к телы главного босса:)
> [52] Kolan © (17.01.08 15:50)
ставить мало. Надо еще заставить использовать оную, а не тилипонную трубку или курилку
> [62] Nic © (18.01.08 00:00)
Давай спорить, что при внимательном рассмотрении найдется десяток моментов о которых ты не только не подумал, но даже и не знал. А они должны быть реализованы...
Эх сколько раз я сам на подобные грабли наситупал. пока не научили жестко раз и на всегда - нет ТЗ нет сроков даже приблизительных. А научили просто. Озвучил 1-2 недели. дали 3 и сказали - не будет готово - будут санкции. Пришлось поселится на работе на 3 недели. Больше так не хочу:)
← →
dr Gonzo (2008-01-18 12:04) [67]
То полный пипец.
Писец, это когда вы работает по всем законам программинга, по супер ТЗ, используете все современные средства программирования/контроля версий/QA и т.д. . А продукт проваливается по не зависящим от вас причинам, и вам не платят $, или задерживают зарплату...
← →
Kolan © (2008-01-18 12:07) [68]> Надо еще заставить использовать оную, а не тилипонную трубку
> или курилку
Ессно, что это входит, и даже основной пункт предложения моего…
← →
Павел Калугин © (2008-01-18 12:09) [69]> [68] Kolan © (18.01.08 12:07)
ну и? большой босс буде we в Мантис писать? с момента внедрения?
не смеши мои тапочки. А пока этого не начнет делать большой папа в конторе этого не будет делать практически никто. Кроме, разве что, выпендривающихся стажеров.
← →
ZoldBerger (2008-01-18 12:39) [70]Пользуйся стандартами: ч.1
2. Создание визуальных и не визуальных объектов в программном интерфейсе GUI
2.1 Формирования имен объектов, компонентов, форм, листингов, классов, функций, операций, процедур, операторов, типов… и тд
Имя формируется следующим образом
<префикс><содержательная часть>
Пример: если содержательная часть имени формы “Main”, то ее имя должно быть “frmMain”. Для имен иных объектов используется префикс “V”.
Объекты, которые используются в сторонних формах программы, если таковые были перечислены, либо в class, либо public, должны именоваться
<Имя формы>.<префикс><опознавательная часть><содержательная часть>, например
“frmConnectionLogin” содержит переменную в public, с именем strHostName: string;, то доступ к ней будет производиться следующим образом:
frmConnectionLogin.strHostName := ‘127.0.0.1’;
ВНИМАНИЕ: Имя объектов не должно быть, такими, какие Delphi по умолчанию их устанавливает, например Label1: TLabel label<>: TLabel
Необходимо присвоить логическое имя объекта, содержащее несущую информацию в нем, либо оставить “vision”, например: VbtnOpenFile: TButton – здесь мы объявляем о создании кнопки, в последствии которая будет открывать файл, при ее нажатии, аналогично Vod_MainDocument: TOpenDialog, объявляем о создании диалогового окна открытия файла.
2.2 Имена временных файлов в памяти или TEMPDIR
Имена временных файлов формируются в зависимости от находящейся в них информации. После обязательно префикса “tmpF_”, следует одно- или сложносоставное имя:
tmpF_<часть1>[<часть2>…]
Часть 1 в сложносоставном имени указывает на роль данного файла в программе, его суть, или просто имя, которое может программа задавать в соответствии RandomWords();
Для облегчения программирования в команде по стандартам “DTVIC”, при написании кода в Delphi, следует вводить комментария на каждую написанную область команд, например:
Листинг 4
unit unfrmMain;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics,
Controls, Forms, Dialogs,
StdCtrls;
type
TfrmMain = class(TForm)
VbtnCloseButton: TButton;
procedure VbtnCloseButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
{ При нажатии на данную кнопку, программу будет закрыта}
procedure TfrmMain.VbtnCloseButtonClick(Sender: TObject);
begin
Close; // Команда для закрытия формы, родительский компонент frmMain
end;
end.
← →
ZoldBerger (2008-01-18 12:40) [71]ч. 2
2.4.1. Оформление кода
Разрешено Запрещено Описание
begin BEGIN, Begin, BeGiN, bEGIN… Запрещено использовать разный регистр символов в системных командах.
Procedure TfrmMain.spFOO
procedure TfrmMain.spFoo
Procedure tfrmmain.spfoo
Procedure TFRMMAIN.SPFOO
Не рекомендуется использовать разный регистр символов, как показано в таблице.
Procedure spMy;
Begin
// Здесь код
End; Procedure spMy;
Begin
// Здесь код
end; Следует использовать иерархическое представление кода
<Объект>.<Свойство>.<Подсвойство> := <параметр>; <Объект>.
<Свойство>.
<Подсвойство> := <параметр> Не рекомендуется при написании кода свойства и его под-свойства описывать в разных строках
3 Комментарий
Два слеша (“//”) – используется для комментарий по строкам
Листинг 5
begin
Result := GetCurrentDir(); // Получение текущего пути в виде string
end;
Фигурные скобки (“{}”) – используются в начале куска кода, поверх операции
Листинг 6
{Определение настроек компонента WindowsMediaPlayer}
function TWindowsMediaPlayer.Get_settings: IWMPSettings;
begin
Result := DefaultInterface.settings;
end;
{Возвращает текущий звуковой канал}
function TWindowsMediaPlayer.Get_currentMedia: IWMPMedia;
begin
Result := DefaultInterface.currentMedia;
end;
{Присваивает настройки для звукового канала}
procedure TWindowsMediaPlayer.Set_currentMedia(const ppMedia: IWMPMedia);
begin
DefaultInterface.Set_currentMedia(ppMedia);
end;
Круглые скобки со звездочкой (“ (* *) ”) – используются для исключения выделенного кода для компиляции
Листинг 7
property URL: WideString index 1 read GetWideStringProp write SetWideStringProp stored False;
property currentMedia: IWMPMedia read Get_currentMedia write Set_currentMedia stored False;
(*
property currentPlaylist: IWMPPlaylist read Get_currentPlaylist write Set_currentPlaylist stored False;
property enabled: WordBool index 19 read GetWordBoolProp write SetWordBoolProp stored False;
property fullScreen: WordBool index 21 read GetWordBoolProp write SetWordBoolProp stored False;
property enableContextMenu: WordBool index 22 read GetWordBoolProp write SetWordBoolProp stored False;
property uiMode: WideString index 23 read GetWideStringProp write SetWideStringProp stored False;
property stretchToFit: WordBool index 24 read GetWordBoolProp write SetWordBoolProp stored False;
*)
property windowlessVideo: WordBool index 25 read GetWordBoolProp write SetWordBoolProp stored False;
property OnOpenStateChange: TWindowsMediaPlayerOpenStateChange read FOnOpenStateChange write FOnOpenStateChange;
← →
ZoldBerger (2008-01-18 12:40) [72]ч.3
Заголовки процедур и функций
Заголовок процедуры имеет вид:
PROCEDURE <имя> [(<сп.ф.п.>)];
Заголовок функции:
FUNCTION <имя> [(<сп.ф.п.>)]: <тип>;
Здесь <имя> - имя подпрограммы (правильный идентификатор);
<сп.ф.п.> - список формальных параметров; <тип> - тип возвращаемого функцией результата.
Сразу за заголовком подпрограммы может следовать одна из стандартных директив assembler, external, far, forward, inline, interrupt, near. Эти директивы уточняют действия компилятора и распространяются на всю подпрограмму и только на нее, т. е., если за подпрограммой следует другая подпрограмма, стандартная директива, указанная за заголовком первой, не распространяется на вторую.
 assembler - эта директива отменяет стандартную последовательность машинных инструкций, вырабатываемых при входе в процедуру и перед выходом из нее. Тело подпрограммы в этом случае должно реализоваться с помощью команд встроенного Ассемблера.
 external - с помощью этой директивы объявляется внешняя подпрограмма.
 far - компилятор должен создавать код подпрограммы, рассчитанный на дальнюю модель вызова. Директива near заставит компилятор создать код, рассчитанный на ближнюю модель памяти. Введены для совместимости с Delphi 1, которая использовала сегментную модель памяти.
 forward - используется при опережающем описании (см. п. 8.6) для сообщения компилятору, что описание подпрограммы следует где-то дальше по тексту программы (но в пределах текущего прораммного модуля).
 inline - указывает на то, что тело подпрограммы реализуется с помощью встроенных машинных инструкций.
 interrupt - используется при создании процедур обработки прерываний.
Помимо описанных в Object Pascal можно использовать также стандартные директивы, регламентирующие способ передачи параметров через стек и использование регистров для их передачи - такие директивы используются при работе с ядром Windows. Они перечислены в приводимой ниже таблице. Графа порядок определяет порядок размещения параметров в стеке: слева направо означает размещение в стеке по порядку описания - сначала первый параметр, затем второй и т. д.; справа налево означает размещение с конца перечисления параметров - сначала последний, затем предпоследний и т. д. Графа Очистка определяет, кто будет очищать стек: подпрограмма перед передачей управления в вызывающую программу или программа после получения управления. Графа регистры содержит да, если для передачи параметров помимо стека используются также регистры центрального процессора.
Таблица 8.1. Стандартные директивы, регламентирующие способ передачи параметров через стек и использование регистров для их передачи
Директива Порядок Очистка Регистры
safecall Справа налево Подпрограмма Нет
Stdcall Справа налево Подпрограмма Нет
Cdecl Справа налево Программа Нет
Pascal Слева направо Подпрограмма Нет
Register Слева направо Подпрограмма Да
Примечание
Все фуйкции API ядра Wmdows;скомпилированы .в режиме stidcall, а те, что доддерживают технологию СОМ - в режиме sаfеса11.
← →
ZoldBerger (2008-01-18 12:42) [73]Либо почитай из DelphiWorld
%DelphiWorldFolder%\base\code_control.html
← →
Nic © (2008-01-18 14:56) [74]
> Павел Калугин © (18.01.08 11:42) [66]
> > [46] ketmar © (16.01.08 19:22)верх идиотизма это когда
> стажер имеет прямой доступ к телы главного босса:)> [52]
> Kolan © (17.01.08 15:50)ставить мало. Надо еще заставить
> использовать оную, а не тилипонную трубку или курилку> [62]
> Nic © (18.01.08 00:00)Давай спорить, что при внимательном
> рассмотрении найдется десяток моментов о которых ты не только
> не подумал, но даже и не знал. А они должны быть реализованы.
> ..Эх сколько раз я сам на подобные грабли наситупал. пока
> не научили жестко раз и на всегда - нет ТЗ нет сроков даже
> приблизительных. А научили просто. Озвучил 1-2 недели. дали
> 3 и сказали - не будет готово - будут санкции. Пришлось
> поселится на работе на 3 недели. Больше так не хочу:)
Да, в процессе разработки так и было. Сделал вроде половину работы и тут на гора выдают ещё три раза по столько же - как новые требования.
← →
oxffff © (2008-01-18 15:09) [75]
> ZoldBerger (18.01.08 12:42) [73]
Красавчик. :)
← →
Kolan © (2008-01-18 15:24) [76]> большой босс буде we в Мантис писать
Большой босс не кодит.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.034 c