Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

удалить файл, если pc внезапно вырубился   Найти похожие ветки 

 
marconi8   (2003-06-11 22:51) [0]

ребята, вот такой вопрос !

представте запускаеться прога, прога при запуске распаковала txt файл, и тут вдруг питание компа в даун, именно я хочю узнать , можна ли реализовать такое что если pc (любой модели) внезапно вырубился, то может ли моя прога ищё что то успеть сделать, например сделать delete всяким tmp файлам


 
Юрий Зотов   (2003-06-11 23:00) [1]

Может, если подключить к проге аккумулятор.


 
Плохой человек   (2003-06-11 23:10) [2]

Вот вы посмотрите - опять Юрий Зотов поднекивает над ламерами.


 
marconi8   (2003-06-11 23:32) [3]

мда, в принципе ваши ответы довльно понятны

благодарю



 
Плохой человек   (2003-06-11 23:36) [4]

2 marconi8:

Никак... Можно только проверять файл на законченность при следующем запуске программы и, если он не закончен, то удалять.


 
Нуу   (2003-06-12 03:43) [5]

2 Плохой человек (11.06.03 23:10)
Пытался понять, что означает глагол "поднекивает", так и не понял, и в словарях не нашел!

2 Плохой человек (11.06.03 23:36)
Пытался попробовать проверять файл на "законченность", но то же не понял ни фига! А что значит "законченность"?
Да, термин "конец" - имеет "весьма много смысловых нагрузок". Но какой из них имеется в виду?


 
Юрий Зотов   (2003-06-12 10:12) [6]

> Плохой человек

Ба-а, снова слышу знакомый голос из подворотни... Привет!

Ну ответьте же, человек ведь ждет. Раз уж взялись. Только без поднекиваний, на полном серьезе. Не уподобляйтесь этому снобу ЮЗ.

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


> marconi8 (11.06.03 22:51)

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

Да ведь и сама Windows зачем-то требует, чтобы юзер сначала завершил работу системы, а затем уже выключал машину. Как Вы думаете, почему это Microsoft так странно сделала? Да еще и автозапуск ScanDisk зачем-то приплела... Зачем бы это?

Но это, конечно, если подумать. А если лень хоть чуть-чуть напрячь СОБСТВЕННЫЕ мозги, то проще вопрос задать, ясное дело.

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

Так что ждите. Я в него верю.


 
Странник   (2003-06-12 17:11) [7]

про "завершенность файла", пжлалста, подробнее, и не спешите, я заппписыввааю.


 
Плохой человек   (2003-06-12 19:01) [8]

> Пытался понять, что означает глагол "поднекивает", так и не понял, и в словарях не нашел!

Поднекивать = подтрунивать.

> Пытался попробовать проверять файл на "законченность", но то же не понял ни фига! А что значит "законченность"?
Да, термин "конец" - имеет "весьма много смысловых нагрузок". Но какой из них имеется в виду?


> про "завершенность файла", пжлалста, подробнее, и не спешите, я заппписыввааю.

Допустим, в файл записываются строки. Т.е. есть уже конечный массив этих строк. В начале файла записывается количество строк и поехали записывать. Затем при запуски проги начинаем пробовать читать эти строки (даже если этого не надо для практических целей). Количество строк есть. Проверяем eof (End Of File) из IO. Ага, если eof, то запись была оборвана. Закрываем файл и удаляем...


 
Юрий Зотов   (2003-06-12 20:18) [9]

> Плохой человек (12.06.03 19:01)

> Ага, если eof, то запись была оборвана.

Тут... это... видите ли, в чем дело... Windows, однако... буферизация, кэширование и прочие примочки.

Короче, может получиться так, что при обрубании питания файл на диск так и не попадет. Не успеет. И не будет у него не только конца, но и даже начала. А вообще говоря, возможно и множество других чудес.

Уж если и правда хотите помочь человеку, то вспомните, как работают некоторые инсталляторы. Они выполняют перезагрузку, при которой система САМА удаляет все временные инсталляционные файлы и вообще все, что ей было сказано удалить при старте.

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


 
Palladin   (2003-06-12 21:10) [10]


> marconi8 (11.06.03 22:51)

ты когда нибудь смотрел в системную директорию %temp% ?


 
Плохой человек   (2003-06-12 22:03) [11]

> Короче, может получиться так, что при обрубании питания файл на диск так и не попадет. Не успеет. И не будет у него не только конца, но и даже начала. А вообще говоря, возможно и множество других чудес.

Я же не ты, многого не знаю. Но всё равно получится коррумпированный файл, который можно удалить.

> А ведь в данной задаче именно это и требуется. Система должна САМА удалить все файлы. И как раз это и было бы действительно грамотное, профессиональное решение, а не кустарщина. О его механизме и рассказали бы, раз уж взялись помогать, а не поднекивать.

Гм, тут всё просто. Нужно в реестр или куда-то записать, чтобы некоторый файл был удалён при следующем запуске Windows. Это просто:

uses
Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;

begin
reg := TRegistry.Create;

with reg do begin
RootKey := HKEY_LOCAL_MACHINE;
LazyWrite := false;
OpenKey("Software\Microsoft\Windows\CurrentVersion\RunOnce",
false);
WriteString("Delete Me!","command.com /c del FILENAME.EXT");
CloseKey;
free;
end;
end;


 
Юрий Зотов   (2003-06-13 00:17) [12]

Согласитесь, это уже лучше. Но возникает несколько вопросов:

1. Если нужно удалить три десятка файлов, то нужно писать в реестр три десятка запусков command.com?

2. Как тогда избавиться от трех десятков консольных окон?

3. В NT нет command, там есть cmd. Значит, нужно определять версию системы?

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

5. Последнее. Как Вы и говорили, Delphi я, конечно, не знаю, но try-finally в таких случаях пишу просто автоматически.


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


 
Плохой человек   (2003-06-13 00:43) [13]

> 1. Если нужно удалить три десятка файлов, то нужно писать в реестр три десятка запусков command.com?

Ну, в вопросе была указана работа с одним файлом. Но можно и три десятка, и три дюжины. Там, кажись, со строкой можно работать так, чтобы файлы удалялись одной командой в n-ых количествах.

> 2. Как тогда избавиться от трех десятков консольных окон?

Зы-зы... нефиг отрубать питание.

> 3. В NT нет command, там есть cmd. Значит, нужно определять версию системы?

Щасссс... разбежался. В софтинке пишем - for Win98 ONLY. И всё... шучу. NT я никогда не учитываю, ввиду, как мне кажется, специфики, хотя ты прав, я в основоном парю игру, а вот софтинка, какую описал автор ветки, действительно может на NT пригодиться. Значит, надо определять. Могу дать код.

> 4. И самое главное - как применить это к конкретной задаче? Ведь нужно удалять только те файлы, которые не были записаны полностью.

Дык, .tmp. А при удачном завершений программы .tmp переименовывается в .txt.

> 5. Последнее. Как Вы и говорили, Delphi я, конечно, не знаю, но try-finally в таких случаях пишу просто автоматически.

И что, питание отключается и прога, собрав уже последнюю статическую электроэнергию, заставляет выполнится блок finally???

> А ведь придется отвечать и на них, раз уж взялись.

Не советую... просто не советую. Гм...


 
Fenik   (2003-06-13 00:51) [14]

Что за кровопролитные междоусобицы, уже ведь эра Водолея началась, а вы...

По теме «как удалить временные файлы если питание отключилось»:
- составить список временных файлов, которые надо удалять;
- сохранить этот список в файл;
- при следующем запуске открыть файл со списком и просмотреть его: если файл существует, то удалять его.
Короче, то, что пытался донести Плохой человек.


 
Fenik   (2003-06-13 00:55) [15]

> Короче, то, что пытался донести Плохой человек.

Ну, почти то же самое...


 
[NIKEL]   (2003-06-13 01:34) [16]

Гм, тут всё просто. Нужно в реестр или куда-то записать, чтобы некоторый файл был удалён при следующем запуске Windows. Это просто


непонятно... профессионально? а где разница...

при создании файла, который должен быть удален при перезагрузку системы или в случае отключения питания, нужно, после создания файла, применить к нему функцию MoveFileEx c параметром MOVEFILE_DELAY_UNTIL_REBOOT


 
Нуу   (2003-06-13 02:31) [17]

2 Плохой человек (12.06.03 22:03)
Давай, все таки, говорить по-русски. При этом "коррумпированными" могут быть: депутаты, чиновники и т.д. и т.п.
Файл, же может оказаться "испорчерным" (corrupt по аглицки).


 
Дмитрий К.К.   (2003-06-13 07:24) [18]

Беспощадная война с коррупцией и взяточничеством привела к тому, что коррумпированными стали даже файлы...


 
Anatoly Podgoretsky   (2003-06-13 09:18) [19]

Ужас, что творится


 
Юрий Зотов   (2003-06-13 12:21) [20]

> По сабжу.

Значит, так. Есть такой файл, насколько помню, он называется WinStart.ini. Чтобы узнать его точное имя, можно временно проинсталлировать какую-либо серьезнуюю программу, на вопрос инсталлятора о перезагрузке сказать "Позже" и посмотреть в каталог системы, а заодно посмотреть и структуру этого файла. Так вот, в нем мы увидим секцию [Rename], а в ней - строки типа
FileName.ext =
Это и есть указание системе на удаление файла при следующем старте (и именно этот механизм используют инсталляторы). Значит, что должна сделать наша программа:

1. Создать в системном каталоге WinStart.ini.
2. Перед началом записи каждого файла прописать в нем строку на удаление этого будущего файла.
3. После записи файла эту строку удалить.
4. Если WinStart.ini в итоге оказался пустым, то удалить и его.

И все. Не надо трогать реестр, не надо определять версию системы, не будут выскакивать консольные окна. И будут удалены только те файлы, которые действительно надо удалять. Независимо от того, полные они, или не полные, текстовые, или не текстовые, типизированные или еще какие-то. Любые, короче. И не придется прописывать в них никаких счетчиков (что, кстати, не всегда допустимо). Система все сделает сама, а потом сама удалит и WinStart.ini.


> marconi8
См. справку Delphi по TIniFile.


 
Юрий Зотов   (2003-06-13 12:22) [21]

> Плохой человек (13.06.03 00:43)

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

Давайте заключим соглашение - я перестаю поднекивает над ламерами, а Вы отвечаете на их вопросы, раз уж такова Ваша позиция. Всерьез и так, чтобы человек реально мог Вашими советами воспользоваться и свою проблему решить. Полностью и до конца. Тем самым подтвердив свои слова ДЕЛОМ. Годится? Или делать все же сложнее, чем говорить?

И когда Вы прозанимаетесь этим 4 года, ответив на многие тысячи ламерских и неламерских вопросов - вот тогда мы с Вами сможем разговаривать на одном языке. Если только к тому времени Вы сами не начнете поднекивать над откровенными лентяями, а также над "творцами" вирусов в среде RAD (потому что я ТОЛЬКО над ними и шучу, а к нормальным чайникам имею самое дружелюбное отношение - именно потому и занимаюсь этой игрой в вопросы-ответы, вот уже те самые 4 года, каждый день).

> И что, питание отключается и прога, собрав уже последнюю
> статическую электроэнергию, заставляет выполнится блок
> finally???

Нет, конечно. Но открою страшную тайну - при отключении питания выполнять блок finally и не требуется. Потому что захваченные программой ресурсы будут все равно освобождены. Так сказать, аппаратным способои. А вот при возникновении любой другой ошибки Ваш код даст утечку памяти, а мой - нет. Это к вопросу о знании ЭЛЕМЕНТАРНЫХ вещей в Delphi, критикующий Вы мой.

И последнее. Наш сыр-бор начался с извечного вопроса "как скрыть программу" ( http://delphimaster.net/view/14-1054827037/ ), над которым все посмеядись, а Вы присоветовали сакраментальное "RegisterServiceProcess". Возможно, Вы не в курсе, но в течение суток тот же автор задал еще несколько вопросов.

1. Как записать значение по определенному адресу в памяти ( http://delphimaster.net/view/14-1054827037/ )

2. Как использовать компонент Stealth (ссылку дать не могу, т.к. вопрос был удален модераторами).

3. Как скрыть папку от пользователя ( http://delphimaster.net/view/14-1054827037/ ). В ответ я присоветовал перестать заниматься ерундой и начать заниматься программированием - с чем автор и согласился.

После чего тот же автор в тот же день задал еще 2 вопроса:

1. Лучший сайт для начинающих дельфистов, где рассказывалось бы о самом языке ( http://delphimaster.net/view/14-1054827037/ ). В ответ ему было присоветовано читать все же книги, а не сайты.

2. Где найти русскую справку по Delphi ( http://delphimaster.net/view/14-1054827037/ )

Итак, что мы наблюдаем? Смотрим дату и время постингов, восстанавливаем их хронологию - и видим, что, похоже, от первоначального творения чего-то пакостного автор все же пришел к мысли о серьезном изучении программирования. Что, несомненно, даст и ему, и другим, гораздо больше пользы. Только вот скажите, что больше способствовало такому повороту событий - Ваше "RegisterServiceProcess" или мои "поднекивания" вкупе с тривиальными советами читать книги?

Вот такая анатомия, отвечающий Вы мой. Знаете шутку: "Пиво не только вредно, но и... полезно". Так вот - не каждый ответ так уж полезен и не каждое "поднекивание" так уж вредно, как вдруг выяснилось. И скажу даже больше - за те самые пресловутые 4 года таких случаев был не один десяток. Некоторые даже потом письма со "спасибо" присылали. Вот так.

И последнее. Отвечать на вопросы, заданные явно в свяи с написанием вредоносной программы... Как Вы там говорили? "Не советую... просто не советую. Гм...". Прежде, чем отвечать, подумайте о тех юзерах, чью полугодовую (годовую, пятилетнюю и т.д.) работу уничтожит Ваш совет. В чем они виноваты? В том, что ламеры? Так они и не должны быть спецами в компьютерах, им вполне достаточно быть спецами в СВОЕЙ области. Знаете, есть такая штука - "профессиональная этика" называется.

Что Вы скажете, если Вы вдребезги разбили свой автомобиль, а Ваш пассажир при этом стал инвалидом - лишь только потому, что какой-то юный "механик" по совету более опытного механика повредил Вам тормозной шланг и хихикает - "вот, ламер, не смог обнаружить"? А ведь шланг-то был поврежден, образно говоря, по Вашему СОБСТВЕННОМУ совету, понимаете?

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


 
Bachin   (2003-06-13 13:38) [22]

да ужжж...
вобщем NIKEL уже ответил, более полную информацию можно найти здесь:
ms-help://MS.MSDNQTR.2002JAN.1033/fileio/filesio_9oe0.htm

2Юрий Зотов: если не секрет, откуда столько сил и времени? я конечно полностью с Вами согласен, но для подобного анализа полагаю ушло не менее получаса... врядли это кто-либо оценит. разве что для себя...


 
pasha_golub   (2003-06-13 15:00) [23]

2ЮЗ
Уважаемый, Юрий! Это не Ваш стиль. Не уподобляйтесь другим личностям, присутствующим на этом сайте. IMHO
Я Вас представляю Мастером, а не балаболом. Извините, если грубо.

зы Ну, а дружба начинается с улыбки :-)


 
Плохой человек   (2003-06-13 21:48) [24]

2 Юрий Зотов:

Устал отвечать на вопросы - уходи с форума. Займись статьями по асму - я с удовольствием почитаю, если они будут написаны интересным живым языком.


 
Юрий Зотов   (2003-06-14 01:37) [25]

> Bachin © (13.06.03 13:38)
> но для подобного анализа полагаю ушло не менее получаса

Менее. Собственно, специального анализа и не было - все развитие событий наблюдалось в тот же день, по мере появления вопросов. Просто самому было интересно (и, не скрою, приятно) наблюдать, как у человека буквально на глазах меняется подход. А ссылки - это очень просто. Жмем "Показать только мои вопросы", затем в адресной строке меняем UserName. Вот и все, пять минут и никаких чудес.


> pasha_golub © (13.06.03 15:00)
> Я Вас представляю Мастером, а не балаболом.

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

Приведу пример из реальной жизни. В одной довольно серьезной софтверной конторе, где мне довелось работать, был один сотрудник. Его работа заключалась в том, что он давал советы. Либо когда к нему за ними обращались, либо когда он сам считал свой вмешательство необходимым. И зарплата этого "советника" была заметно выше, чем у самых квалифицированных программистов и аналитиков. Думаю, в этой конторе умели считать деньги и за просто так платить их не стали бы. Значит, было за что?

Когда я смотрю исходники VCL, знаете, от чего я тащусь? От их ФИЛОСОФИИ. А уж потом от всего остального. Есть целая куча ОЧЕНЬ крепко написанных пакетов (Rz, Rx и масса других), во всех них тоже есть философия (как уже говорилось, без нее хороший код просто не напишешь) - но это все та же философия VCL. Просто люди ее поняли, приняли и применили, а итог - налицо.

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


> Плохой человек (13.06.03 21:48)
> Устал отвечать на вопросы - уходи с форума

И это все, что Вы можете сказать? Увы, немного же Вы тогда поняли. Жаль. Честно говоря, я рассчитывал на более интересный диалог.


 
[NIKEL]   (2003-06-14 02:03) [26]

чего говорить...
человек задал вопрос... неважно
кто-то посмеялся, кто-то вдарился в димагогию, кто-то посмеялся, кто-то просто ответил.

все по старому.... ничего хорошего ничего плохого, ни пользы ни вреда...


 
Knight   (2003-06-14 02:22) [27]

Чё-то я тут пробежался... и не заметил, такого варианта, а почему-бы не хранить файл, если он такой важный в том месте содержимое которого исчезает вместе с питанием... ОЗУ :)
Ну, конечно, при условии, что он не в гигах.
Или это не реально?


 
y-soft   (2003-06-14 09:11) [28]

Knight © (14.06.03 02:22)

Можно и так, но где гарантия, что сбой питания не произойдет в момент копирования из памяти на диск?


 
Knight   (2003-06-14 09:40) [29]

Удалено модератором
Примечание: Без мата


 
y-soft   (2003-06-14 09:57) [30]

>Knight © (14.06.03 09:40)

Что действительно верно - абсолютной надежности достичь невозможно...

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

В общем и способ с реестром, и с WinStart - реализации такого подхода. Хочу напомнить еще один широко рапространенный способ:

Запись происходит в файл с каким-то временным расширением (обычно .$$$), а после ее окончания расширение меняется на рабочее...

P.S. Хронология постов marconi8 почему-то сильно наводит на мысль, что человек пишет что-то трояноподобное...


 
Knight   (2003-06-14 10:14) [31]

Knight © (14.06.03 09:40)
Удалено модератором
Примечание: Без мата


Это в смысле, что там мата небыло, что ли? Так я и так знаю, что его небыло :)

>> y-soft © (14.06.03 09:57)
Ты похоже прочитать успел... был там мат или нет?

Я помню только одно слово и то во фрагменте анекдота, но как говориться - из песни слова не выкинешь (так я и то там многоточий наставил :)

Такой пост загубили, ни за что... :(


 
y-soft   (2003-06-14 10:17) [32]

Knight © (14.06.03 10:14)

Я помню только одно слово и то во фрагменте анекдота, но как говориться - из песни слова не выкинешь (так я и то там многоточий наставил :)

Так и было, но действия модератора не обсуждаются:(


 
Юрий Зотов   (2003-06-14 11:55) [33]

> y-soft © (14.06.03 09:57)

> Хронология постов marconi8 почему-то сильно наводит на мысль,
> что человек пишет что-то трояноподобное...

Если Вы имели в виду те ссылки, что я приводил, то справедливости ради надо уточнить - их автор не marconi8. И хочется надеяться, что он уже не пишет, а приступил-таки к чтению. А вот еще одна иллюстрация (тоже надеюсь):
http://delphimaster.net/view/14-1054827037/


 
y-soft   (2003-06-14 12:10) [34]

>Юрий Зотов © (14.06.03 11:55)

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

Насчет marconi8 каюсь, имел в виду именно приведенные Вами ссылки:(


 
Юрий Зотов   (2003-06-14 12:57) [35]

> y-soft © (14.06.03 12:10)

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

Ну а наша задача... сами понимаете... :о)


 
y-soft   (2003-06-14 14:47) [36]

>Юрий Зотов © (14.06.03 12:57)

Чем больше народу попадется в эту ловушку, тем выше выход годного продукта:) А остальные, по крайней мере, пополнят ряды компьютерно-грамотных... Чем раньше юноши определят свою профпригодность/профнепригодность, тем лучше...


 
Плохой человек   (2003-06-14 21:32) [37]

2 Юрий Зотов:

> Давайте заключим соглашение - я перестаю поднекивает над ламерами, а Вы отвечаете на их вопросы, раз уж такова Ваша позиция. Всерьез и так, чтобы человек реально мог Вашими советами воспользоваться и свою проблему решить. Полностью и до конца. Тем самым подтвердив свои слова ДЕЛОМ. Годится? Или делать все же сложнее, чем говорить?

Предлагаю the same, только на условии, что Вы, Юрий Зотов, не будете больше постить мессаги в рубрику "потрепаться" вообще или же будете постить под другим ником, не содержащим слова "зотов", а также напишите для меня пару-тройку простеньких статей про асм. Вот тогда я согласен - Вы сможете заходить в рубрику "Потрепаться" и проверять, достаточно ли я ответил на ламерские вопросы. Вы как, согласны????


 
Плохой человек   (2003-06-14 21:41) [38]

2 Юрий Зотов:

> Приведу пример из реальной жизни. В одной довольно серьезной софтверной конторе, где мне довелось работать, был один сотрудник. Его работа заключалась в том, что он давал советы. Либо когда к нему за ними обращались, либо когда он сам считал свой вмешательство необходимым. И зарплата этого "советника" была заметно выше, чем у самых квалифицированных программистов и аналитиков. Думаю, в этой конторе умели считать деньги и за просто так платить их не стали бы. Значит, было за что?

Когда я смотрю исходники VCL, знаете, от чего я тащусь? От их ФИЛОСОФИИ. А уж потом от всего остального. Есть целая куча ОЧЕНЬ крепко написанных пакетов (Rz, Rx и масса других), во всех них тоже есть философия (как уже говорилось, без нее хороший код просто не напишешь) - но это все та же философия VCL. Просто люди ее поняли, приняли и применили, а итог - налицо.

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


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

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

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

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


 
vuk   (2003-06-14 22:00) [39]

to Плохой человек:
Я учился сам + по книгам. Учителя никогда не было. Я кто?


 
Плохой человек   (2003-06-14 22:20) [40]

>Я учился сам

Беспредельщик в процессе. Наверняка у тебя были коды, которые ты стирал начисто про недель работы?


 
vuk   (2003-06-14 22:33) [41]

to Плохой человек:
Было, а как же, давно, правда, я уж и не помню, когда. А у кого не было-то? На начальном этапе все через это проходят. Опять же критерием чего может быть выброшенный код? Или Вы хотите сказать, что другой метод обучения от этого страхует? Да ни в коем разе. От выброшенного кода в какой-то мере можно застраховаться только путем применения различных методик анализа и проектирования. И то не всегда, т.к. иной раз в процессе разработки приходит другой взгляд на проблему и приходится перекраивать архитектуру (хотя чаще всего уже поздно). :o)


 
Sergey Masloff   (2003-06-14 22:47) [42]

Плохой человек (14.06.03 21:41)

>Но все полагают, что существует ещё и третий способ. Это способ >обучения по книгам. Его предлагает Юрий Зотов, хотя в душе он >имеет ввиду мой первый способ. Такие люди программерами не >становятся.

Да брось ты. Было бы желание. vuk © - стал. Я - стал. Не было под рукой не учителя да и книг не было почти. Распечатки документации к Турбо-паскалю. Тем не менее деньги программированием зарабатываю уже много лет, а в последние годы весьма немалые деньги, работаю в солидной компании и вобщем-то вижу что мой уровень далеко не плох. Преподавал в институте (теорию РСУБД и.т.д.), некоторых своих бывших студентов встречаю - выпустились, работают, претензий что учил не тому и не так не высказывают, даже наоборот. Может, конечно, из вежливости ;-) Имею несколько гос. свидетельств регистрации авторских прав на программы... Вобщем, мне кажется, программистом могу себя считать ;-))


 
Asteroid   (2003-06-14 23:16) [43]

Однозначно я полный беспредельщик. Выучил основы C с помощью хелпа и одного книжного примера (небезызвестного Hello World). Плюс полгода, пока не дошло, что есть указатель и как его едят :))


 
Плохой человек   (2003-06-14 23:36) [44]

> Или Вы хотите сказать, что другой метод обучения от этого страхует? Да ни в коем разе.

Страхует ещё как. вот именно в том, что считать выброшенным кодом. Для меня - это полгода работы. И такое было три раза.

2 Sergey Masloff:

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

Наверное, стоит уточнить. Я допускаю книги, но книги справочного характера.


 
Плохой человек   (2003-06-14 23:41) [45]

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


 
Fenik   (2003-06-14 23:45) [46]

> Плохой человек

Значит, ты не станешь настоящим программистом???


 
Плохой человек   (2003-06-15 00:02) [47]

2 Fenik:

Ещё всё впереди. У меня есть время, чтобы пойти по моему первому пути.


 
vuk   (2003-06-15 00:56) [48]

to Плохой человек:
>Страхует ещё как
И каким же это образом?

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


 
Плохой человек   (2003-06-15 01:04) [49]

> Страхует ещё как
> И каким же это образом?

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

> По мне так даже выброшенный код просто так не пропадает. Любые ошибки только добавляют опыта и проектирования и программирования. Отрицательный результат, он же тоже результат, а свои ошибки - самые ценные.

В этом то и суть обучения по второму методу. На своих огромных ошибках.

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


 
vuk   (2003-06-15 02:26) [50]

to Плохой человек:
>Тебе не дадут делать дело так, чтобы это привело к выброшенному
>коду....
Угу, все разжують и в рот положуть. Шаг в сторону-побег, прыжок на месте - провокация. Так что ли? А самому думать как учиться? Или только по чужим шаблонам? На мой взгляд думать самому можно научиться только начав думать самому.

>На своих огромных ошибках.
А опыт, он у нас там чей сын-то? :o)



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.01 c
4-7763
BJValentine
2003-04-29 17:43
2003.07.03
DeleteFile


14-7712
SiJack
2003-06-17 14:00
2003.07.03
Не могу сочинять хелпы, ОТМОРАЖИВАЮСЬ !!!


7-7734
Sliski Slimak
2003-04-23 13:39
2003.07.03
как организовать синхронизацию папок.....


1-7523
nester
2003-06-21 19:31
2003.07.03
Как распечатать содержимое TListView


6-7570
danka
2003-04-25 17:42
2003.07.03
idFTP и id HTTP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский