Кілька порад початківцю програмісту на delphi, vr-online - безкоштовний електронний журнал для

Ідея написання цієї статті народилася у мене дуже просто. Я досить багато спілкуюся на форумах. І, як не дивно, досить у багатьох людей виникають дуже схожі питання. Відповісти на хоча б частину з них я і спробую в цій статті. Заодно я хочу поділитися досвідом, як зробити програми найбільш швидкими, гарними, захищеними.

Ну що ж, приступимо:

1) Не забувай архівувати свої програми спеціальними ЕХЕ-архиваторами - вони не тільки зменшують місце, займане на диску, але і збільшують швидкість виконання програм. Чому ж збільшують швидкість, адже програмі потрібен час для розпакування? Так то воно так, але сама програма стає набагато менше і тому набагато швидше запускається, попередньо акуратно розпакувати себе в пам'ять.

Приклади таких програм:

2) Якщо програма важлива - захищай від злому. Про захист твого софта є багато статей, так що будуть тільки приклади програм.

Як взагалі працюють такі програми? Принцип програми простий - щоб не можна було щось запустити, це щось треба зламати. Тобто вони трохи «псують» виконуваний файл - сама виконується частина не змінюється, або змінюється незначно, а ось заголовок псується більш сильно. Тобто Windows ще розуміє, що цей файл можна запускати, а програми-зломщики (дізассеблери) вже так не вважають. УВАГА! Досвідченому зломщику такий захист - не перешкода! Серйозний хакер легко зламає будь-яку стандартну захист. Цими методами ви зможете обламати лише «дітей» і зломщиків середньої руки. Але саме такими хакерами зараз і переповнена мережу. Не кожен зможе стати серйозним хакером. Так що більша частина все-таки залишиться в прольоті

За статистикою найлегше розпакувати програму, упаковану чистим UPX - прям в самій програмі-пакувальник є така опція. Однак якщо використовувати UPX Shell і можливість «Захистити файл від декомпресії», то розпакувати такий файл буде досить складно. Принаймні програм, розпаковувати такий софт, я не бачив.

Дуже легко розпакувати програму, упаковану ASPack'ом - є навіть програма для розпакування ASPack - ASPackDie. Трьома кліками ти зможеш розкрити будь-яку програму, упакованнкю цим архіватором.

3) Оформлення програми теж має важливу роль. Щоб оформити свою програму красиво, можна самому малювати красиві картинки, писати потужні компоненти. Якщо зробити це - то ваша програми буде потужна, красива, унікальна (ступінь кожної ознаки залежить від прямоти твоїх рук). Але це дуже довго, важко, та й не у кожного руки прямі. Є альтернативний варіант - використовувати скін движки. Кожна нормальна движек повинен вміти повністю перетворити форму під певний скін і додавати повну палітру компонентів, що підтримують цей движек. Так само має підтримуватися непоодинокі кількість скінів. Таких двигунів в інтернеті досить багато. Але деякі з них занадто дорого коштують, деякі занадто глючний, а деякі тільки під певну версію Windows. Так ось такий тобі рада, якщо юзаешь сторонній скін движек - відразу юзай нормальний, щоб потім не було проблем ні з скінами, ні з реєстрацією, ні з версією Windows.

Також можливе збереження в базу даних, але це не дуже зручно і громіздко + розмір твоєї програми істотно збільшиться. Але якщо ти вже використовуєш БД в своїй програмі, то тобі що, табличку зайву створити шкода что-ли?

5) Досить часто люди просять дати подивитися твій исходник. Так ось, якщо вважаєш його дуже потрібним, або написаним в дуже поганому тоні - краще нікому його не давай. Деякі люди можуть допомогти, пояснити що-небудь, показати ознаки поганого тону. А деякі можуть просто засміяли тебе, або просто кинути. Таке буває досить рідко, і люди найчастіше намагаються допомогти один одному. Але хіба тобі треба, щоб потім твій исходник продавали на базарі і за це не платили тобі ні гроша?

Якщо не впевнений, краще не давай - віддати завжди встигнеш, а тому потім нічого не повернеш ...

Згодом вихідні здаються самому собі все більш і більш ізвратнимі, але ти все більше і більше розумієш, наскільки багато чому ти навчився на цих исходниках, як вони тобі допомогли.

6) Перед написанням проги переконайся, з якою метою ти її пишеш. У зв'язку з цим вибором себе і веди. Ти не зможеш продавати гру, зроблену заради навчання, за шалені бабки, хоча саме на ній ти і навчишся програмувати і отримаєш багато досвіду. І навпаки, робота за гроші може виявитися дуже навіть нудною і марною в плані твого розвитку, хоча може значно підняти матеріальний стан.

7) Не забувай, твоя програма - твоя дитина. В твоїх очах вона може здаватися ідеальною, чудовою і понад-потрібною, а насправді бути жахливо глючной, непотрібною і морально потворною. Якщо ти писав таку програму, щоб відшліфувати свої навички в програмуванні - не переймайся, ти багато чого дізнався).

8) Але про налагодження і очищення від глюків ніколи не забувай. Досить часто це займає набагато більше часу, ніж написання тексту програми.

Взагалі, краще налагоджувати програму відразу в процесі написання - відразу пам'ятаєш все глюки і проблеми. Якщо ж спочатку написати програму, а вже потім починати її налагоджувати, то це займе набагато більше сил і часу, та до того ж ще програма вийде жахливо глючной, тому що ти обов'язково щось забудеш) Конструкції try ... except, try ... finally теж краще розставляти в процесі написання. Також в них треба намагатися додавати якомога менше тексту - це полегшить не тільки читаність програми, але і допоможе компілятором. По можливості краще користуватися окремими перевірками для різних випадків. Наприклад, можна написати

Загалом, ніколи не забувай оптимізувати свої програми. Я тільки трохи торкнувся теми оптмізаціі - на цю тему статей вже навалом, так що читай і вчися)

У цій статті я торкнувся лише основні питання, багато чого міг забути. Але тим не менше я вирішив допомогти людям розібратися в такій нелегкій справі, як програмування. Швидше за все, ти не знайшов в цій статті чогось, що тебе цікавило б. Але це ще не кінець. Далі буде! Пиши в листах, що ти хотів би дізнатися, стукай в аську, заходь до нас на форум - команда HH-Team завжди прийде на допомогу. Якщо я не буду чогось знати, то це обов'язково буде знати інший тімовец, і він поділиться з тобою своїми знаннями.

Best regards, Храбров Дмитро, a.k.a Dem @ nXP