Жоба файлдарының орналасуы

Новости мира

Мұнда шын мәнінде не талқыланатыны және не үшін жазылғаны туралы бірнеше сөз. Мұның бәрін қысқаша тұжырымдау өте қиын, бірақ мен тырысамын.

Әдетте, бағдарламалау бойынша кітаптардың көпшілігі тілге арналған анықтамалық мақалаларды қайталау немесе «осы түймені бассаңыз, бұл суретті көресіз, енді осы түймені басыңыз …» сияқты комикстер жиынтығы. Бұл жаман немесе қажет емес дегенді білдірмейді. Дәл осы екі шектің арасында көптеген жаңадан келгендер жоғалып кететін алшақтық пайда болды. Сондықтан, кем дегенде, оны жабатын кез келген кітап әдетте жоғары сұранысқа ие.

Сіз қандай «сәтсіздік» туралы айтып отырсыз?

Бірінші олқылық – терминология. Түрлі терминдердің анықтамасы не мүлде берілмейді (бәрібір бәрі түсінікті дейді) немесе қатаң ғылыми (яғни, өте абструктивтік, бермеген дұрыс). Нәтижесінде, одан әрі мақалаларды оқу, шын мәнінде не талқыланып жатқанын түсіну мүмкін емес.

Екінші алшақтық — қашан және нені жақсы қолдану керек. Әдетте презентация осылай құрастырылады: мәселені шешу үшін біз мынаны, мынаны және мынаны жасаймыз. Бірақ тіпті басқа жол бар болған кезде неге, шын мәнінде, басқаша емес, түсіндіруге әрекет жасалмайды? Нәтижесінде, жаңадан бастаған адам бір мәселені тіпті екі емес, үш, төрт немесе одан да көп жолмен шешуге болатынын білгенде, оның басында толық карусель басталады. Бір шектен екіншісіне лақтырады.

Алдыңғы екеуіне қатысты тағы бір мәселе бар. Әдетте, басқа тілдерде бағдарламалауды сынап көрген адамдар FoxPro-ны түсіне бастайды (көбінесе Delphi немесе Basic-те, тіпті DOS үшін FoxPro-да бұрын жұмыс істеген бағдарламашылар) және олар бағдарламалауды қолдануға тырысады. оларға белгілі (немесе онша емес) белгілі тілдің стилі.Visual FoxPro және күтпеген (мағынасында — күтпеген) мәселелерге тап болған кезде қатты таңғалады: түптеп келгенде, нұсқаулықта мұның мүмкін екендігі айтылған, бірақ бұл мен үшін жұмыс істемейді! Бірақ мәселе бағдарламалау стилінің өзінде. FoxPro үшін Delphi-де жақсы жұмыс істейтін кейбір трюктар қолданылмайды.

Сондықтан мен осы «олқылықты» толтыруға тырысамын және FoxPro бағдарламасында бағдарламалау бойынша кейбір ұсыныстарды сипаттаймын, мұны неге басқаша емес, неліктен қалайтынын түсіндіремін.

Кеңестер мен айлалар

FoxPro — бұл бағдарламалаушының қателіктерін жек көретін тіл: олар айнымалы анықтамасын бермеді — ештеңе, мен оны өзім анықтаймын; жұмыс кеңістігін көрсетуді ұмытып кеттім — ештеңе жоқ, мен оны өзім табуға тырысамын. Көптеген жағдайларда, егер сіз бірдеңені көрсетуді ұмытып қалсаңыз, FoxPro оны өздігінен табуға тырысады.

Бір жағынан, бұл, әрине, жақсы және бағдарламашы үшін өмірді жеңілдетеді, бірақ екінші жағынан, жеткілікті үлкен жобаларды жасау кезінде, FoxPro тарапынан осындай «әуесқойлық әрекеттің» нәтижесінде қателіктер орын алуы мүмкін. ұстау қиын.

Ең жиі кездесетін қателік – айнымалылардың өзін-өзі анықтауы. Егер сіз процедурада айнымалы анықтамасын бермеген болсаңыз, онда алдымен FoxPro басқа процедурада анықталған және осы процедурада қолжетімді аттас айнымалыны табуға тырысады, ал егер мұндай айнымалы бар болса, онда ол толығымен пайдаланылады. мұндай «арамдықты» мүлде күтпейтін бағдарламашының абдырап қалуы

FoxPro әзірлеушілері тарапынан синтаксисті қатайтудың айқын үрдісі байқалды. Түсінікті, мұндай бағдарламалау тілдерін жасау оңай, ал қолдау кітапханаларының көлемі кішірек болады. Бірақ бұл тек тренд болса да, әрі қарай не болатынын көрейік.

Екінші жағынан, әрине, FoxPro бір мәселені бірнеше жолмен шешу мүмкіндігін беретіні өте жақсы, бірақ егер әр жағдайда сіз «нені қолданған дұрыс» деп ойласаңыз, онда сіз ешқашан бір қолданбаны аяқтамайсыз.

Нәтижесінде, бағдарламалаудың кейбір ережелері мен нұсқаулары бар, олар «басқа ешкім емес, осылай істе» принципі бойынша мүлдем қажет емес. Сіз олардың барлығын толығымен бұзып, жұмыс істейтін қосымшаны жаза аласыз. Бұл ұсыныстардың мақсаты қателердің ықтималдығын азайту және бағдарламаларды нақты жазуды да, кейіннен түзетуді де жеңілдету болып табылады.

Жоба файлдарының орналасуы

Жалпы алғанда, жоба файлдар жиынтығы болып табылады. Сұрақ туындайды — оларды қайда және қалай орналастыру керек? Егер сізде ол жоқ болса, онда сіз өте тәжірибелісіз (бұл анық!), Немесе, керісінше, өте тәжірибесізсіз (бұл маңызды ма?).

Бұл жағдайда негізгі ереже жұмыс (өзгертілетін) және орындалатын (өзгертілмейтін) файлдарды бөлу болып табылады. Бұл ең алдымен олардың физикалық (әртүрлі каталогтар бойынша) бөлінуіне қатысты.

Бұл «теңсіздіктің» себебі, ең алдымен, орындалатын файлдардың зақымдалуы туралы елеулі алаңдаушылық бар. Бұл кездейсоқ және байқаусыз болсын. Бірақ егер жұмыс істейтін және орындалатын файлдар бір каталогта болса, таңдауда қателесу және қате файлды өзгерту өте оңай. Нәтижесінде, FoxPro қателермен жұмыс істей бастайды немесе мүлдем жұмысын тоқтатады.

Тағы бір себеп — жұмыс файлдарын жылдам көшіру мүмкіндігі. Егер олар бір каталогта ықшам орналасқан болса, онда сіз бұл каталогты барлық мазмұнымен еш ойланбастан көшіресіз және нені көшіру керек, ненің артық екенін іздемейсіз.

Көшіру қажеттілігі кем дегенде барлық жұмыс істейтін файлдардың резервтік көшірмелерін жасау қажеттілігімен түсіндіріледі (басқа себептер де бар). Негізінде бағдарламалау файлдарды өзгертуге арналған. Ал файлды «өзгертуге» болады, сондықтан ол аз көрінбейді. Содан кейін бұл «өзгертуді» толығымен алып тастап, бәрін қайтадан бастау ғана қалады. Егер сізде сақтық көшірме болса, онда сіз нөлден бастамайсыз. Ал егер жоқ болса?

Жоба файлдарын FoxPro файлдарынан бөлек сақтаудың тағы бір маңызды себебі дұрыс жұмыс файлдарын табудың ыңғайлылығы болып табылады. Егер олар жұмыс істейтін FoxPro файлдарымен біріктірілсе, дұрыс файлды табу өте қиын болады.

Сонымен, жоба файлдары FoxPro өзі орнатылған каталогта сақталмауы керек. Сондықтан жобаларыңыз үшін бөлек каталог жасау керек.

Жобаңыз орналасқан каталогтардың атауларында бос орындар мен орыс әріптерін пайдалану қажет емес. Бос орындар бағдарламалаудың біршама қиындауына әкеледі (барлық кіру жолдарында қосымша тырнақшалар қажет болады). Орыс әріптері қажет емес, өйткені FoxPro негізінен ағылшын тілді пайдаланушылар үшін әзірленген, ал басқа тілдердің барлығы қазірдің өзінде «қондырма» болып табылады. Және көбінесе бұл «қондырма» өте қисық. Орыс әріптері сізге қайдан оралатынын ешқашан білмейсіз.

Ең дұрысы, каталог атауларын DOS форматында (яғни 8 таңбаға дейін) беру жақсы болар еді, бірақ бұл қазірдің өзінде қайта сақтандыру. 8 таңбаға сәйкес келеді — жақсы, жоқ — бұл жақсы.

Жобадағы файлдардың орналасуы

Келесі мәселе — жобаның файлдарының орналасуы туралы мәселе. Тағы да, барлық файлдарды бір каталогқа тастау өте қажет емес. Мұнда себептер бірдей — зақымдану қаупі, резервтік көшірме жасау қажеттілігі, іздеудің күрделілігі. Бірақ қазірдің өзінде жобаңызда.

Ең алдымен, дерекқорды сақтау үшін бөлек каталогты бөлуді ұмытпаңыз. Әдетте, бұл ішкі каталог «DATA» деп аталады. Бұл каталог дерекқор контейнерінің файлын да (DBC, DCT, DCX) және нақты кесте файлдарын (DBF, FPT, CDX) сақтайды.

Басқа файлдар да ішкі каталогтарға «шашырау» болуы керек, бірақ мұнда опциялар қазірдің өзінде мүмкін.

MicroSoft мысалдары файлдарды түрі бойынша сақтауды ұсынады: пішіндер каталогындағы пішіндер, Сынып каталогындағы сыныптар және т.б. Дегенмен, мен файлдарды логикалық мақсатына қарай сақтауды жөн көремін: негізгі программалық файлдар Басты каталогта, SPR каталогындағы каталогтармен жұмыс істеуге арналған файлдар, Document каталогындағы құжаттармен жұмыс істеуге арналған файлдар және т.б. Қай опцияны таңдағаныңыз соншалықты маңызды емес. Ең бастысы, сіздің файлдарыңыз бірнеше каталогтарда «шашырауда».

Осылайша, сіз жобаңыз үшін келесі каталог құрылымы сияқты нәрсені аласыз
C:ProjVFP
C:ProjVFPMainProj
C:ProjVFPMainProjClass
C:ProjVFPMainProjData
C:ProjVFPMainProjForms
C:ProjVFPMainProjPrg

Мұнда C:ProjVFP каталогы сіз көп жазатын көптеген жобаларды сақтауға арналған. Ал шын мәнінде сіздің жобаңыз C:ProjVFPMainProj каталогында орналасқан

Жобаның негізгі анықтамалығының мазмұны

Біз файлдарды әртүрлі ішкі каталогтарға тараттық, бірақ жобаның негізгі каталогында не қалады?

Бірақ негізгі каталогта қалады, біріншіден, нақты жоба файлы (PJX, PJT кеңейтімі бар файлдар), екіншіден, CONFIG.FPW конфигурация файлы қажет (бұл кәдімгі мәтіндік файл, төменде толығырақ) және үшіншіден , файлдар ресурстары FoxUser.DBF және FoxUser.FPT басқа файлдар белгілі бір жобада қажет болса, бірақ әдетте мұнда басқа ештеңе сақталмауы керек.

Жоба файлын ол орналасқан каталогпен бірдей атауды қалау табиғи нәрсе, өйткені шын мәнінде мұның бәрі осы үшін басталды. Дәл осылай істеу керек – жоба файлын MainProj.pjx (және MainProj.pjt) деп атаңыз.

FoxUser.dbf және FoxUser.fpt ресурстық файлын арнайы жасау мүмкін емес, тек конфигурация файлындағы арнайы жазба ғана (бұл жағдайда ол автоматты түрде жасалады).

Неліктен бұл ресурс файлын жоба каталогына апару керек? Мәселе мынада, ресурс файлы FoxPro ортасында барлық ашылған терезелердің координаталары мен позицияларын сақтайды. Бұл барлық жобалар үшін бірдей ресурс файлын пайдалансаңыз, бұл файл керемет өлшемдерге дейін «қабылады» дегенді білдіреді. Бірақ жобаны үйге көшіру жағдайында «сурет адаспауы үшін» ресурстық файлды өзіңізбен бірге алған жөн. Егер ресурс файлы FoxPro каталогында іздеудің орнына, жобаның өзі сияқты бір каталогта физикалық түрде орналасса, мұны істеу ыңғайлырақ.

SYS(2005) функциясы арқылы қай ресурс файлы пайдаланылып жатқанын және оның қайда орналасқанын анықтауға болады