جزيره فناوري اطلاعات جزيره فناوري اطلاعات .

جزيره فناوري اطلاعات

پاپت ( Puppet ) چيست؟ معرفي نرم افزار Network Automation

در اين بخش از دوره آموزشيمان قصد داريم بپردازيم به انواع حالت هاي اسقرار سازي در حوزه Configuration Management 

نرم افزار Puppet چيست؟ آموزش نرم افزار Puppet ا Network Automation چيست؟ Configuration Management چيست؟ چگونه فرآيند هاي كاريمان را در سازمان اتوماتيك سازي كنيم؟ امروزه با افزايش تعداد سيستم ها و تجهيزات و گسترش پيدا كردن شبكه هاي كامپيوتري و زيرساخت ما اصولا معضلاتي نيز به وجود آمده است كه يكي از آن ها پيكربندي سريع و آني ميباشد كه با وجود چندين ديوايس متعدد اصولا نميتوانيم پيكربندي را به شكلي به صورت سريع انجام بدهيم به همين سبب شما در نظر بگيريد كه مهندس شبكه و يا Network Administrator در يك شبكه بزرگ در اين موقعيت از شما درخواست ميشود
كه تمامي سرور هاي وجود در شبكه ميبايست به صورت هرچه سريع تر سيستم عاملشان عوض شود ، يا كه قرار است بر روي تمامي روتر هاي موجود در سطح كشور كه متعلق به شعبي هستند كه شما در آن قرار داريد يك پيكربندي خاص اعمال شود خب در اين صورت اگر تعداد ديوايس ها و تجهيزات زياد باشد پيكربندي تمامي آنها وقت بسيار زيادي رو از شما ميگيرد ! اما همونطور كه مقايس شبكه هاي امروزي درحال گسترش و پيشرفت است تكنولوژي و راه كار هاي متنوع نيز درحال پيشرفت و گسترش ميباشند به همين سبب ما تصميم بر اين گرفتيم كه به معرفي و نحوه كار با نرم افزار قدرتمند اتوماتيك سازي فرآيند هاي زيرساختي يعني نرم افزار Puppet بپردازيم و آن را مورد بحث و بررسي قرار دهيم.

Network Automation چيست؟

در اين موضوع ما با استفاده از ابزارها و تكنيك ها و زبان هاي برنامه نويسي ميتوانيم به شكل خيلي بهتر و سريع تر فرآيند هاي پيكربندي ديوايس هايمان را انجام بدهيم كه به اين موضوع ما ديگر نيز نيست براي پيكربندي و بررسي 50 كامپيوتر تك تك به آن‌ها سر بزنيم فقط كافيست از پشت سيستم خودمان با استفاده از تكنيك هاي Network Automation ديوايس هايمان را به صورت يكجا پيكربندي كنيم كه اين ديوايس ها طيف متعددي رو شامل ميشوند علاوه بر اين موضوع ما به سبب Network Automation ميتوانيم تجهيزات ديگر مانند سوييچ ها و روتر ها و سرور ها و حتي كلاينت هاي خودمان راهم پيكربندي كنيم. براي يادگيري Network Automation با زبان Python به لينك مقابل مراجعه كنيد

برچسب: X آموزش شبكه, آموزش شبكه هاي كامپيوتري, آموزش نتورك پلاس, دوره آموزشي نتورك پلاس،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲ مرداد ۱۴۰۲ساعت: ۰۷:۳۱:۲۳ توسط:محمد نصيري موضوع:

معرفي 10 نرم افزار اسكنر آسيب پذيري و امنيت شبكه برتر دنيا

ابزارهاي اسكنر امنيتي ( Security Scanner ) و اسكنر آسيب پذيري ( Vulnerability Scan ) بسياري در دنيا وجود دارند كه ماهيت آنها انجام اسكن هاي امنيتي سيستم عامل ها ، تجهيزات ، وب سايت ها و ... و پيدا كردن نقاط آسيب پذير آنهاست. شما با استفاده از خروجي گزارش اين نرم افزارهاي اسكنر امنيتي مي توانيد آسيب پذيري هاي موجود در شبكه ، سيستم عامل ها ، وب سايت ها و ... خود را پيدا كنيد:براي دسترسي به لينك دوره ها به منبع مقاله مراجعه كنيد.

شماره 1 : Core Impact نرم افزار تست نفوذ و هك بسيار پيشرفته

Core Impact | Penetration Testing | Core Security

شماره 2 : Nexpose نرم افزار اسكن آسيب پذيري كامل و جامع

Nexpose Vulnerability Scanner and Software

شماره 3 : GFI Languard ارزيابي آسيب پذيري و اسكن گام به گام امنيت

GFI Languard Network Security Scanner and Patch Management

شماره 4 : Retina پلتفرم مديريت آسيب پذيري | RNSS

Retina Network Security Scanner (RNSS)

شماره 5 : Acunetix نرم افزار اسكنر امنيت و آسيب پذيري تخصصي وب

Acunetix Web Vulnerability Scanner

شماره 6 : HP WebInspect ابزار اسكن آسيب پذيري و امنيت وب

WebInspect

شماره 7 : SAINT اسكنر امنيت و آسيب پذيري تخصصي شبكه

SAINT Security Suite - Carson-SAINT Cyber Security

شماره 8 : Shadow Security Scanner ابزار اسكن امنيت و بازداري از حملات

Safety Lab Shadow Security Scanner

 

شماره 9 : QualysGuard اسكنر امنيتي مبتني بر Cloud

Qualys Cloud Platform

شماره 10 : IBM AppScan ابزار اسكن و آناليز امنيتي

IBM® Security AppScan® Standard

شماره 11 : NsAuditor اسكنر امنيت شبكه و بازرسي

NsAuditor Network Security Auditor

شماره 12 : Nessus سردمدار محبوبيت و كاربرد در اسكن آسيب پذيري

Nessus Vulnerability Scanner

شماره 13 : OpenVAS اسكنر آسيب پذيري كپي برابر اصل Nessus

OpenVAS - Open Vulnerability Assessment Scanner

خلاصه معرفي نرم افزارهاي اسكنر امنيتي

نرم افزارها و ابزارهاي اسكنر يا پويشگر امنيتي بسيار زيادي در دنيا وجود دارند و قطعا قرار نيست اين 13 مورد كاملترين و جامعرين ليست باشد ، اين ليست با توجه به تجربه و تحقيقات نويسنده نوشته شده است و شما مي توانيد اسكنري كه از لحاظ خاصي بهتر مي دانيد را در ادامه همين مطلب Comment قرار بدهيد تا ديگران هم در خصوص آنها اطلاعات داشته باشند.براي درك ويادگيري بيشتر مفاهيم به دوره هاي آموزش امنيت شبكه و تست نفوذ مراجعه كنيد.


برچسب: آموزش هك, آموزش هك قانونمند, آموزش CEH, آموزش سكيوريتي پلاس،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲ مرداد ۱۴۰۲ساعت: ۰۵:۴۷:۴۳ توسط:محمد نصيري موضوع:

معرفي 4 مفهوم اصلي در امنيت برنامه نويسي جاوا

امنيت يكي از بخش هاي حياتي يك برنامه جاوا است. به همين دليل فريمورك هاي متعددي نوشته شده اند تا امنيت را در برنامه براي ما فراهم كنند. ولي مفاهيمي در همه آنها وجود دارد كه يكسان است و در همه فريمورك ها استفاده مي شود. در اين مطلب در مورد اين مفاهيم كه مباني امنيت در جاوا هستند صحبت مي كنيم و همچنين شباهت ها و تفاوت هاي آنها را بررسي مي كنيم.براي يادگيري رايگان زبان جاوا و آموزش جاوا به زبان ساده به اين لينك مراجعه كنيد

Subject در امنيت جاوا

در امنيت جاوا subject منبع درخواست است. Subject كلاسي است كه اطلاعات در مورد منابع را در خود نگهداري مي كند و مي تواند تغييراتي در آنها ايجاد كند. Subject مي تواند يك كاربر يا برنامه يا پروسس يا يك فايل يا يك كامپيوتر يا يك پايگاه داده باشد. براي مثال اگر كاربري بخواهد وارد سيستم شود و به يك سري منابع دسترسي داشته باشد پس كاربر يك subject است.

Principal در امنيت جاوا

بعد از اين كه كاربر با موفقيت وارد سيستم شد و احراز هويت انجام شد ما يك subject خواهيم داشت كه به بخش هاي مختلفي مانند رول(نقش)ها و SSN(social security number) ها مرتبط است. به هركدام از اين بخش هاي اين شكلي يك Principal گفته مي شود كه همه آنها در داخل Subject قرار مي گيرند.

كاربر (User) در امنيت جاوا

شخصي است كه به يك سري منابع دسترسي دارد و فعاليت هايي انجام مي دهد و وظايفي بر عهده دارد. در برخي جاها مي توان user را به عنوان يك principal در نظر گرفت كه جاوا براي آن از كلاس UserPrincipal استفاه مي كند.

تفاوت بين Subject , Principal, User

همانطوركه در بخش قبلي گفتيم مي توانيم برخي از جنبه هاي كاربر را به شكل يك Principal نمايش دهيم. حال اين principal ها زير مجموعه subject ها هستند و كاربران زيرمجموعه principal هاي مي باشند كه به كاربرها اشاره مي كنند.


برچسب: , آموزش سي شارپ ، آموزش C#، دوره سي شارپ ، آموزش سي شارپ , آموزش برنامه نويسي اندرويد ، آموزش اندرويد، آموزش android ، آموزش جاوا، آموزش java , آموزش سئو،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲ مرداد ۱۴۰۲ساعت: ۰۵:۴۶:۲۶ توسط:محمد نصيري موضوع:

معرفي 11 جايگزين گوگل آناليتيكس | Google Analytics در تحليل وب

اگر شما هم از كاربران گوگل آناليتيكز | Google Analytics بوده باشيد و از آمار و ارقام و تجزيه و تحليل هاي اين سرويس گوگل استفاده كرده باشيد حتما مي دانيد كه اين سرويس چقدر مي تواند براي كسب و كار اينترنتي و وب سايت شما مفيد باشد. در اين مقاله مي خواهيم 10 وب سايت جايگزين گوگل آناليتيكز را به شما معرفي كنيم كه تجزيه و تحليل هاي جالبتر ، عملكردهاي متنوع تر و البته كارايي هاي متنوع تري از اين سرويس به شما ارائه مي دهند و شما مي توانيد از انها به عنوان جايگزين Google Analytics استفاده كنيد . در ادامه با معرفي اين سرويس هاي اينترنتي در خدمت شما هستيم.براي يادگيري مفاهيم بهتر ودرك درست از طراحي سايت مي توانيد بع دوره هاي آموزش طراحي وب و وردپرس مراجعه كنيد.

صل هاي اين مطلب
  1. جايگزين شماره 1 گوگل آناليتيكز : هاب اسپات | HubSpot
  2. جايگزين شماره 2 گوگل آناليتيكز : ميكس پنل | MixPanel
  3. جايگزين شماره 3 گوگل آناليتيكز : ووپرا | Woopra
  4. جايگزين شماره 4 گوگل آناليتيكز : فاكس متريكس | FoxMetrix
  5. جايگزين شماره 5 گوگل آناليتيكز : پيويك | Piwik
  6. جايگزين شماره 6 گوگل آناليتيكز : گاوجز | Gauges
  7. جايگزين شماره 7 گوگل آناليتيكز : دبليو تري كانتر | W3Counter
  8. جايگزين شماره 8 گوگل آناليتيكز : كليكي | Clicky
  9. جايگزين شماره 9 گوگل آناليتيكز : ماتومو | Matomo
  10. جايگزين شماره 10 گوگل آناليتيكز : هييپ | Heap

برچسب: , آموزش سي شارپ ، آموزش C#، دوره سي شارپ ، آموزش سي شارپ , آموزش برنامه نويسي اندرويد ، آموزش اندرويد، آموزش android ، آموزش جاوا، آموزش java , آموزش سئو،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲ مرداد ۱۴۰۲ساعت: ۰۵:۳۲:۱۰ توسط:محمد نصيري موضوع:

بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

 

در اين مقاله ميخوايم ساختار اكتيو دايركتوري رو بررسي كنيم و بگيم چه اجزائي داره.

 

نكته : يك سري از مفاهيمي كه بررسي ميكنيم مربوط به بحث Windows Internals هستن و اگر سطح بالا به نظر امدن بايد براي درك بيشترشون كتاب Windows Internals رو مطالعه بكنيد ، من هرچقد بتونم ازش ميگم كه شما نياز نداشته باشيد 🤝😁

نكته2 : اكثر اين مفاهيم بصورت منطقي بايد گفته بشه و فرض بشه و چون مثال فيزيكالي براش نيست يكم دركش سخته و به مرور با كار عملي ميتونيد دركشون كنيد پس اولش تو درك زياد سخت نگيريد

نكته3: اين مقاله با ديد امنيتي و مختص بچه هاي امنيت شبكه نوشته شده ، ولي ديد كاملي از اكتيو دايركتوري بهتون ميده

نكته4: اكثر اين مواردو شما فقط بايد بفهميد و نياز نيست حتما درك كنيد

نكته5 : هرچيزي كه براتون مبهم بود حتما بپرسيد 😉

مفاهيم مقدماتي :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

Forest :

منظور از forest يه قضاييه كه ما توش بقيه چيز ها مثل دامين و ... رو قرار ميديم ، forest درواقع يك مرز امنيتي هست كه يه فضاي منطقي يا همون Logical هست براي دامين ها و بقيه اشيا در شبكه، مثلا ما در شكل بالا يه forest داريم كه سه تا دامين داره ، دامين اول كه اسمش هست apple.com ، دامين دوم كه اسمش هست sub1.apple.com و دامين سوم كه اسمش هست sub2.apple.com

Domain :

دامين هم يك فضايي هست كه ما اشيا خودمون رو توش قرار ميديم ، همون forest ولي كوچيك تر ، ما داخل forest يك يا چندين domain داريم كه داخل اون ها ما اشيا مون رو داريم

ما مفهوم parent-child يا والد و فرزندي هم داريم ، به apple.com ميگن والد يا HQ(Head Quarters) و به sub1 و sub2 ميگن فرزند ، پس ما سه تا مرض و گروه جدا داخل شبكه بالا داريم يا سه تا دامين

توي هر دامين هم ما سخت افزار ها و دارايي هاي سازمان مثل همون پرينتر و يوزر ها و فايل هارو داريم (سمت راست كادر نارنجي)

Objects :

اشيا همون منابع شبكه ما هستن ولي به صورت مجازي ، اشيا درواقع يك فايله كه حاوي يوزر ها و گروه ها ، فايل سرور ، ديتابيس سرور و... است

Domain Controller(DC) :

به سروري گفته ميشه كه اشيا داخلش باشن ، اين سرور تنظيمات active directory رو داره و گردن كلفت محسوب ميشه 😅 و سطوح دسترسي رو هم توش تعريف ميكنن

Trusts :

اگر هرچيزي داخل دامين ها بخوان باهم ارتباط برقرار بكنن بايد بينشون trust برقرار باشه ، همون اتصال خودمونه و يك لينك ارتباطي امنيتيه كه امكان و سطح دسترسي رو تعيين ميكنه (لينكاي مشكي كه خط خطين و بين دامين ها وصلن)

Organizational Units (OUs) :

يه فضاييه براي مديريت بيشتر :))) همش كه شد فضا !! جلوتر كه بريم بيشتر درك ميكنيد !! ولي همينقدر بدونيد كه به هرچيزي كه يه فضاييه براي دسته بندي كردن و گروه كردن چيزهايي كه داخل دامين داريم مثلا در داخل دامين ما چه واحد هايي داريم ؟ DC - Users - Groups و...

Sites :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

سايت به معناي مكان هست ، تا حالا هرچيزي گفتيم مفهوم Logical و منطقي داشت ولي اين مفهوم Physical هست ، مثلا فكر كنيد دامين والد توي انگليس هست و دو دامنه فرزندمون در امريكا ، ما دوتا سايت داريم ، يكيه براي انگليس كه حاوي يك دامينه و يكي هم براي امريكا كه حاوي دو دامينه (سايت هاي براي مديريت و نظم بيشتر هستن)

نكته : يك site ميتونه حاوي چندين domain باشه ولي يك domain نميتونه به بيشتر از يك site تعلق داشته باشه ( براي درك بيشتر شما site رو كشور فرض كن و domain رو آدم ، يك كشور ميتونه چند تا ادم داشته باشه ولي يك ادم نميتونه متعلق به چند كشور باشه)

براي اينكه ي اين مواردي كه گفته شد رو بيشتر درك كنيد اين ساختار رو نگاه كنيد :

Apple.com
│   └───GPO
├───sub1.apple.com
│   ├───OU
│   ├───Employees
│       ├───Computers
│       └───Users 
├───sub2.apple.com
...

 

كمي درمورد Forest :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

در ادامه ما مياييم و ميگيم كه ما دوتا forest داريم ، يك مقدار مباحث جديد ما داريم :

در بحث شبكه اين متداوله كه ما چند تا Domain و يا Forest داشته باشيم كه با trust به هم وصل شده باشن ولي اين ها جهت دارن كه در شكل بعد خلاصه توضيح ميدم ولي شكل بالا رو اوردم كه ديدي از forest داشته باشيد

كمي درمورد trust :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

در اينجا به صورت خلاصه مبحث trust رو باز ميكنيم و جلوتر كامل و جامع بررسيش ميكنيم :

نكته : در اين شكل كادرهايي كه رنگ كرم دارن forest هست و ايكون هاي سرور نماد دامين هستن

دليل وجود trust اين هست كه دامين هاي مختلف ميخوان به محتوا هاي دامين هاي ديگه دسترسي داشته باشنو نميخوان اون دامين رو مجدد بسازن ، چه از نظر داده و چه از نظر منابع فيزيكي

ارتباطات trust و دامين ها يكم پيچيدس و جلوتر بررسي ميكنم ولي عكس بالا به صورت مقدماتي اينو داره ميگه :

ارتباطي كه بين دوتا forest شركت dell و apple هست به صورت دو طرفه هست(به فلش دقت كنيد) يعني دامين والد dell و apple جفتي به منابع هم دسترسي دارن ، ولــــــي فرزنداشون اينطوري نيستن

فرزند ها به اطلاعات دامين والد خودشون يا فرزند هاي ديگر در forest خودشون دسترسي ندارن

و فرزندان هيچ forest اي به فرزندان forest ديگر دسترسي ندارن

مثال : واحد فروش شركت apple به هيچ يك از واحد هاي ديگه شركت apple دسترسي نداره و هيچ واحديم بهش دسترسي نداره ( نه در forest خودش نه در forest شركت dell)

واحد مالي شركت dellهم به هيچ واحد ديگه اي دسترسي نداره و برعكس ، نه تو forest خودش نه تو forest شركت apple

ولي والد ها به اطلاعات فرزندانشون دسترسي دارن ، والد apple به كل اطلاعات والد و فرزند هاي شركت dell و والد dell هم به كل اطلاعات خود والد و فرزندان شركت apple دسترسي داره

منطقيم هست ، هر كسي اطلاعاتي بخواد از والد يا فرزند ديگه بايد به والدش اطلاع بده تا براش trust ساخته بشه

اين مبحث در اخر مقاله موشكافانه تر بررسي ميشه

مفاهيم پيشرفته تر :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

Attributes :

هر object در اكتيو دايركتوري قصه ما يك سري مشخصات و ويژگي ها داره ، با استفاده از اين ها ميشه اون شئي رو پيدا كرد و طبقه بندي كرد ، مثلا شئي computer ويژگي هاش اينان : hostname ، DNS name و..

همه اين attribute ها هم يك نام مترادف در LDAP دارن واسه اينكه اگر ما query زديم به LDAP بتونيم با استفاده از اين نام ها اطلاعات بدست بياريم مثلا شما نام كاملتو ميدي و با displayName مچ ميشه در يه entry و سرچ ميشه يا نامتو ميدي و با give name مچ ميشه و قابل جستجو هست

ValueEntry

Full NamedisplayName

First Namegiven name

GPO :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

ما يه چيزي داريم به اسم Group Policy كه مياييم و توش خط مشي و قوانين تعريف ميكنيم ، و به صورت شئي ذخيره ميكنه (اين شئي كه گفتم با شئي اي كه توي اكتيو دايركتوري در موردش صحبت ميكنيم متفاوته)

Schema :

هرجا اينو شنيديد ميشه يه نقشه كلي از شبكه AD اي كه داريم ، يه شكل كلي كه همه چي توش معلوم باشه

در اين نقشه نوع اشيا مشخص شده و attribute هاي مربوط به هر شئي در اون موجوده و براي هر شئي كلاس خاصي در نظر گرفته ميشه طبق اون چيزي كه اون شئي در اكتيو دايركتوري هست مثلا :

AD ObjectCorresponding Class in schema

usersuser

computer computer

 

instantiation و instance of that class :

يك مفهوم خيلي مهمه كه اگر اينو ياد نگيريد بعدا به مشكل ميخوريد :

  • وقتي يك شئي از روي كلاس سخته بشه بهش ميگن instantiation
  • اگر شئي از روي يك كلاس خاص ساخته بشه بهش ميگن نمونه كلاس يا instance of that class

براي مثال اگر ما بگيم "computer RDS01" اين object اكتيو دايركتوري يك instance هست از كلاس Computer كه توي schema بود چون از روي class خاص computer ساخته شده

Container vs Leaf Objects :

ما در كل دو نوع شئي داريم در اكتيو دايركتوري ، يكي اشئايي كه خالين و چيزي نميتونه داخلشون بره ، يكي اشيايي كه داخلشون چيزي هست

  • container درواقع اشئايي هستن كه داخلشون اشياء ديگه اي ميتونه قرار بگيره ، خاطرتون هست بالاتر گفتم OU ؟ اين اشياء همه چي داخلشون قرار ميگيره ! مثلا
  • leaf اين ها اشيائي هستن كه چيز ديگري توشون نميتونه قرار بگيره ، مثلا پرينتر ، شئ پرينتر فقط پرينتره و هيچي ديگه نميتونه توش قرار بگيره

نكته : فرق بين OU و Container چيه ؟ جفتشون كانتينر هستن ولي GPO فقط به OU اعمال ميشه سر همينه كه اكثرا از OU استفاده ميشه

مثال : فرض كنيد شما مدير دومين asia.mycorp.com هستيد و 500 تا كاربر و 500 تا كامپيوتر در شبكه (دامين) داريد ، شبكه شما رفت و امد زياد دارد ، يعني افراد زيادي روزانه ثبت نام ميكنن و روزانه اخراج ميشوند ، حالا ميخوايد اين شبكه رو بدست يه سنيور بديد تا مديريت بكنه ، امكان ساخت دومين جديدي هم نيست !! شما مياييد و تو همون دامين كه داريد يك Organizational Unit ميسازيد به اسم دلخواه مثلا Manufacturing OU ، و به اون سنيور دسترسي و مجوز اديت GPO رو ميديد ، و در اينجا دسترسي اي كه اون فرد سنيور داره روي Manufacturing OU هست نه روي كل شاخه و خود asia.mycorp.com

Tree :

صحبت از درخت شد ، يه اصطلاح داريم به اسم درخت كه به صورت شاخه وار ميگه چه چيزي زير مجموعه چه چيزي هست ، بالاتر شكلشو كشيدم و يه يبار

├───Root Domain
│   ├───child Domain
│   │   ├───Computers
│   │   └───Users  
│   └───child Domain
├───Root Domain
│   ├───child Domain

نكته : اين نكته مهمه و قبلش حتما Global Catalog رو بخونيد تا اين نكته رو بفهميد ، تمامي دامين ها كه در tree هستن يك standard global catalog مشترك رو به اشتراك ميگذارند كه تمامي اطلاعات object هاي مربوط بهtree رو داخلش داره

Global Catalog(GC) :

Domain Controller كه اول گفتم رو خاطرتون هست ؟ اگر نيست يه بار ديگه بخونيدش ، GC يه نوع DC هست كه اطلاعات تمام object هاي يك forest رو ذخيره ميكنه و ازشون كپي ميگيره ، به اين صورت هم كپي ميگيره كه از دامين متعلق به خودش يه كپي كامل (Full Copy) و از دامين هاي ديگه تو forest يك كپي ناقص (Partial Copy) ميگيره

نكته : GC محتوا فقط خواندني داره و مستقيما آپديت نميشه !

نكته : فرق بين DC و GC چيست ؟ DC فقط محتوا اشئا داخل دامين خودشو داره ولي GC علاوه بر محتوا داميني كه توشه محتوا دامين هاي ديگه رو هم داره

كاربر ها و برنامه ها با استفاده از كوئري زدن به GC ميتونن اطلاعات هر شئي رو در هر كدوم از دامين ها بدست بيارن (داخل Forest)

GC دوتا كار ميكنه :

  • Authentication : براي تمامي گروه هايي كه كاربري توشون هست Authentication و Authorization فراهم ميكنن ، كه معمولا بعد گرفتن Access Token توسط يوزر انجام ميشه
  • Object search : امكان سرچ يك object بر اساس attribute مد نظر رو به وسعت كل دامين هاي يك forest فراهم ميكنن

Global Unique Identifier (GUID) :

يك ركن بسيار مهم هست ، GUID يك مقدار 128 بيتي منحصر بفرد و تكرار نشدنيه براي هر شئي كه ساخته ميشه ، تكرار ميكنم هر شيئي تو شبكه كه توسط اكتيو دايركتوري ساخته ميشه اين شناسه رو ميگيره و مثل MAC Address يكتا و منحصر بفرده ، اين مقدار توي attribute اي ذخيره ميشه به نام ObjectGUID

ما ميتونيم توسط پاورشل كوئري بزنيم و ObjectGUID رو سرچ كنيم و شئي مورد نظر رو پيدا كنيم ،

سرچ توسط GUID دقيق ترين روشه مخصوصا كه اگر ما كوئري زده باشيم به GC و چند مورد مشابه ببينيم و ندونيم كدوم مد نظرمونه و اين مقدار تو تست نفوذ و فاز Enumerate بسيار بدردمون ميخوره

نكته : تا وقتي شئي مد نظر ما در اكتيو دايركتوري هست اين مقدار ObjectGUID يا همون GUID شئي عوض نميشه و به شئي ديگري تخصيص نميگيره تا وقتي كه اون شئي از اكتيو دايركتوري ما خارج بشه !

براي سرچ كردن در اكتيو دايركتوري ما گزينه هاي متفاوتي داريم از قبيل SID-GUID-SAM Account name-DN كه جلوتر بهش ميپردازيم

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

 

Distinguished Name (DN) :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

به مسير كامل يه object ميگن DN در اكتيور دايركتوري ، مثلا تو مثال كامپيوتر خودم الان يه يوزر هست به نام محمد حسن پزشكيان كه توي دامينيه به اسم mamad.com

قبل ديپ شدن يه مثال بزنم : فرض كنيد ميگن ادرستون كجاست ؟ ميگيد شهر اراك ، خيابون ملك ، كوچه فريدي ، ساختمان اجر سه سانتي ، پلاك 2 ، محمد حسن پزشكيان

هر كدوم از اين بلاك ها با يه attribute مشخص ميشن، مثلا DC="خيابان ملك" و... پس اينطوري يه object در AD پيدا ميشه !

ما سه نوع Attribute داريم براي نام گذاري :

  • O - OU : اولي organizationName يا organizationalUnitName هست و معمولا بيانگر دامين root-level هست و ميگه اين شئي كجا قرار داره
  • DC : اين مورد organizationalUnitName هست و براي دامين و DNS هست و اگر مثلا دامين ما يه DNS داشته باشه به اين صورت " rebeladmin.com " ما اين نوع ادرس دهي رو داريم : DC=rebeladmin,DC=com
  • CN : اين هم commonName هست و بيانگر شئي و container يا همون فضاي دربرگيرنده object هاي ماست

معمولا اكثرا از CN استفاده ميشه ولي فورم درستش به اين صورته :

CN=bill gates,CN=Users,DC=microsoft,DC=com

اينجا microsoft.com دامين ما هست كه با DC نمايش داده شده و users ابجكت يوزر ماست كه با CN نمايش داده شده و درواقع users واسه اين با CN امده چون يه Container object هست (بالاتر توضيح دادم) و توش كلي اسم ذخيره ميشه و جناب بيل گيتسم كه اسم كامل فرد هست و نام ابجكت ماست

نكته : اگر شئي از يك DC منتقل بشه به DC ديگه DN اش عوض ميشه

Relative Distinguished Name :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

اين مفهوم خيلي كلكيه ! خوب و با دقت بخونيد :

RDN يك جزء از DN هست كه اون object رو منحصر به فرد ميكنه

فرض كنيد شما توي يه OU دوتا كاربر داريد به اسم محمد (عكس سمت چپ) و اين دوتا دقيقا DN يكساني دارن ! يعني مسيرشون همينطوري زير شاخه خورده تا رسيدن به OU منابع انساني ، حالا ما كه نميتونيم دوتا محمد يكسان داشته باشيم ! فقط يك محمد

نكته : اگر دوتا اسم يكسان بود خب دوتا فاميلي كه يكسان نيست ؟ مثلا تو عكس سمت چپ سناريويي ك داريم دوتا اسم يكسانه ولي خب دوتا فاميلي متفاوته پس مشكلي نيست

نكته : اگر اسم و فاميلي جفتشون يكي بود چي ؟ يكيشون بايد يك مشخصه داشته باشه كه اون يكي نداره ، مثلا يكيشون سنش 27 عه و ديگري 31 ، خب فقط كافيه يه cn=34 اضافه كنيم به يكيشون و اونوقت اين يكي يه RDN متفاوت داره پس توي يه OU ميتونه كنار اون يكي باشه !

نكته : RDN ميتونه اسم باشه ، يا OU باشه يا سن باشه يا قد باشه يا جنسيت باشه يا يه شماره خاص باشه يا .. فقط يه وجه تمايز بايد باشه

نكته : هر جزئي از DN يك RDN هست ، يا به عبارتي چندين RDN كنار هم يك DN تشكيل ميدهند

كليد : حداقل يكي از RDN ها در يك OU يا همون Container بايد منحصر به فرد باشند ، يعني تكراري نباشد ، اگر همشون تكراري بودند بايد در Container هاي مختلف باشند(در Cotainer مختلف يعني در مكان هاي مختلف ، يعني DN مختلف) !

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

يك مثال اينجا اوردم ، ما يك شئي داريم در users به نام استيو جابز كه دامينشم apple.com هست ، اينجا ما تو خط دوم يه كاربر ديگه با اسم steve jobs مياريم و اكتيو دايركتوري اين اجازرو به ما نميده ! پس دوتا كار ميتونيم بكنيم ، توي همون مسير يه RDN ديگه تعريف كنيم ، مثلا سومي براش يه مشخصات تعريف كرديم كه عدد 27 هست و سنشه ! يا ميتونيم مثل گزينه اول مسيرشو عوض كنيم و يدونه RDN بهش اضافه كنيم كه ما برديمش تو sales و اينطوري DN عوض شد (نسبت به اصلي)

Access Tokens & SID :

قبل پرداخت به كانسپت هاي امنيتي يكم با مبحث Access Token و SID اشنا بشيم

Access Token يك شئي داخل كرنله كه به Porcess يا Thread تعلق ميگيره و سطح دسترسي و گروه و... هاي ديگشو تعيين ميكنه ، اين موارد امنيتين ، يك توكن خالي كه به process يا thread خاصي تعلق نداره ارزشي نداره !

thread ها هم معمولا از process شون به ارث ميبرن token و دسترسي هارو !

يك نمونه توكن :

ffffc4097ba54060

SID (Security IDentifiers)

درواقع يك شناسس براي شناسايي يوزر ، گروه و يا دامين و سطح دسترسيش ، درواقع از ديدگاه امنيتي به هر كدوم يه عدد اختصاصي داده ميشه كه بشه تشخيص دادشون

در اكتيو دايركتوري DC اين شناسه رو توليد ميكنه براي هر شئي و اونو تو ديتابيس خودش ذخيره ميكنه

هر SID فقط يكبار حق استفاده داره و بعد دليت كردن Security principals هم حتي اون SID حق استفاده شدن نداره

نكته : چه زماني مقدار SID يه شئي ميتونه عوض بشه ؟ زماني كه منتقل بشه به يك DC ديگه !

نكته : تغيير مقادير در هر object هيچ موقع SID شو عوض نميكنه

نكته : اگر يك object توي يك دامين يك مقدار SID داشته باشه اين مقدار SID در دامين ديگه براي همين object مورد قبول نيست

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

sIDHistory :

مقدار SID يك object كه توي يك دامين بوده و منتقل شده به يه دامين جديد ميره توي sIDHistory و به اون object يه SID جديد توي دامين جديدي كه امده توسط DC تعلق ميگيره

نكته : از ديدگاه امنيتي اين قسمت اگر درست كانفيگ نشده باشه ميتونه مورد سوء استفاده قرار بگيره و يك object جديد ايجاد بشه و SID قديمي اون object اي رو بگيره كه منتقل شده به يه دامين ديگه ! و اين خطرناكه ، براي جلوگيري از اين حمله بايد SID Filtering فعال باشه

 

يك مقدارم درمورد اجزا سطح دسترسي :

Authorization and access control components :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

در عكس بالا subject رو بگيريد يك برنامه كه يه كاربر اجرا كرده و اين برنامه سعي داره يك object (اين object مال ويندوزه و با اوني كه توي اكتيو دايركتوري تا الان گفتيم يكي نيست !) مثلا Share folder رو بخونه و بهش دسترسي بگيره

اينجا اون شئي يه سري سطح دسترسي ويندوز براش تعريف كرده كه هركسي ميخواد بهش دسترسي داشته باشه بايد اون حد از دسترسي رو حداقل داشته باشه ، و اينجا يوزري كه ميخواد به اين object دسترسي داشته باشه هم يه سطوح دسترسي اي داره (همون access token اي كه گفتم) و حالا اينجا ويندوز مياد اين دوتارو باهم مقايسه ميكنه ، اگر سطوح دسترسي برنامه در حد اون object بود ميتونه ازش استفاده كنه

يكم فني تر توضيح بدم ميشه اينكه اون object يه سري ليست دسترسي داره كه بهش ميگن ACE كه تك تك اون ها با Access Token فرد تطابق داده ميشن تا يك مورد Match پيدا بشه

مثال : فرض كنيد شما ميخوايد وارد سينما بشيد وسينما يه ليست داره از افرادي كه ميتونن وارد بشن ، وقتي شما ميريد اونجا از باجه دم در يه بليط يا Access Token ميخريد ، روي اون بليط شماره صندلي شمارو هم نوشته كه مثلا 52 (مثلا ما فرض ميكنيم اينطوريه) و وقتي شما ميخوايد از در رد بشيد كارمند اونجا اول تو ذهنش ميگه خب چه كسي حق داره از اينجا رد بشه ؟ يه ليست داره :

افرادي كه حق عبور دارند :

مدير سينما

مسئول فني

فروشنده بليط مستقر در باجه

نظافتچي و ساير كاركنان

مشتري داراي بليط

و وقتي شمارو ميبينه ميگه خب شما گزينه اخر هستي ، يعني 4 گزينه اول رو رد ميكنه و وقتي به اخر ميرسه ميبينه سطح دسترسي شما با اون اخري Match شده و اصطلاحا اجازه عبور شمارو ميده

اين مكانيزم دقيقا تو ويندوز هست ، و اسم اون ليست در ذهن فرد دم در همون ACE هست كه پايين ميخوايم بهش بپردازيم :

Security principals :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

هر چيزيه كه سيستم عامل بتونه احراز بكنه ، شامل يوزر ها ، اكانت ها ، گروه ها يا حتي Process ها و Thread ها كه در چارچوب يوزر اجرا ميشن ! مثلا اگر ما Tomcat رو داشته باشيم و اجرا بشه حتي Security principals اونم احراز ميكنه !

در اكتيو دايركتوري ها اين Security principals ها object هايي هستن كه متعلق به دامين هستن و سطح دسترسي كاربرا و .. رو به منابع تعيين ميكنن ، ما اركان ديگه اي هم براي تعيين سطح دسترسي مثل local user accounts و يا security groups داريم كه توسط SAM مديريت ميشن و سطح دسترسي رو كنترل ميكنن

نكته : كنترل سطح دسترسي كلا مقوله ايه كه به چندين عامل وابستس ، مثلا شما وقتي گوشيتونو به ضبط ماشين وصل ميكنيد كه آهنگ پخش كنيد ، اگر صدا ضبط تا ته زياد باشه و صداي گوشيتون خيلي خيلي كم باشه ، اهنگ صداش كمه و برعكس ، پس به همه عوامل بستگي داره ، مثال واقعي تر بخوام بزنم مثل NTFS Permission و Share Permission هست ، اگر هر هركدوم مجوز ندن و اون يكي بده ، تا زماني كه يكيشون مجوز كم تعيين بكنه همون مجوز كم اعمال ميشه !

Access Control List (ACL) :

يك ليستي هست از سطح دسترسي هايي كه به يه Object اعمال ميشن

وقتي يك object به دامين ديگري منتقل ميشه ACL از روي SID اون object كه تو ليستش داشته دسترسي بهش ميداده و وقتي اون object توي sIDHistory نياد ثبت كنه كه من منتقل شدم و SID قديميش اونجا ثبت نباشه ، ACL مجوز بهش نميده ! چون SID جديدش جايي ثبت نشده ، ولي وقتي بياد و SID قديميشو تو sIDHistory ثبت كنه و بره SID جديد بگيره ACL رهگيريش ميكنه و مجوز هاي SID قبلي اون شئي رو روي SID جديدش ست ميكنه !

Access Control Entries (ACEs) :

يك Entry و مقداريه و مجوزي كه به هر Object توي دامين چه دسترسي اي ميشه داشت براي Trustee ها (Trustee همون اكانتاي يوزر هاست ، يا گروه ها )

Discretionary Access Control List (DACL) :

تعريف ميكنه كه چه اصول امنيتي و قوانيني روي يك object اعمال و تعريف ميشه

System Access Control Lists (SACL) :

لاگ برداري خودمونه ، كه چه زمان چه يوزري سعي كرده به چه Object اي دسترسي بگيره

براي درك كامل اين موارد عكس بالا رو ببينيد كه با رنگ نارنجي و مشكي مشخص كردم ، يكم با بحث سطح دسترسي ها در ويندوز كار كرده باشيد دستتون مياد اين موارد

براي درك اين موارد يكبار عكس نارنجي و ابي اي كه بالا گذاشتم رو ببينيد !

Foreign Security Principals :

اين هم همينجا بگم ، وقتي يك شئي اي در اكتيو دايركتوري ايجاد ميشه براي بحث security principal منتها مروبط به forest ديگه اي هست (external forest يعني forest خارجي)

فرض كنيد از يك forest ديگه يك شئي مثلا يك كامپيوتر اضافه شده به دامين ما توي forest ما ، بلافاصله بايد براش FSP تهيه بشه ، در اين FSP يك چيز مهم يعني SID اون شئي كه تو forest خارجي بود هم ذخيره ميشه و اگر ويندوز بخواد اين شئي رو از طريق SID اش پيداش بكنه از طريق trust ميره و از forest مبدا شئي ميپرسه

اين FSP ها در كانتير خاصي قرار ميگيرن "ForeignSecurityPrincipals" و RN شونم اينطوريه :

cn=ForeignSecurityPrincipals,dc=mamad,dc=com.

sAMAccountName :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

اين درواقع اسميه كه كاربر باهاش وارد ميشه و logon ميكنه ، اين اسم بايد منحصر بفرد و يكتا باشه و كمتر از 20 كاراكتر باشه

(فلش صورتي)

userPrincipalName :

اينم يه روش ديگس براي اينكه كاربرا رو بشه پيدا كرد ، يك attribute كه يك پيشوند داره كه همون اسم يوزره و پسوند كه دامينه

(تو عكس بالا با فلش بنفش مشخصه)

Service Principal Name (SPN) :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

ساده بگم كاربرا در اكتيودايركتوري با استفاده از SPN ميتونن سرويس هارو تو اكتيو دايركتوري پيدا كنن ، اگر واسه يه سرويسي SPN نباشه نه كاربرا ميتونن پيداش كنن نه Kerberos

SPN درواقع يك Instance از سرويس هست ، SPN ها توسط Kerberos استفاده ميشن كه يك logon account رو به Service Instance تخصيص بده ؛ يعني به يه اپليكيشن (Client Side Application) ، اجازه ميده كه به يه سرويس درخواست بزنه كه احراز بشه بدون اينكه نياز باشه اسم اكانت رو بدونه

(اين مفهوم الان يكم براتون شايد گنگ باشه ، وقتي Kerberos و توضيح دادم اونجا كامل دركش ميكنيد)

(اين مفهوم تو بحث Persist و Priv Esc در اكتيو دايركتوري خيلي بدردتون ميخوره !)

لينك مقاله Kerberos

Replication :

 

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

Replication يا تكرار زماني اتفاق ميفته در اكتيو دايركتوري قصه ما كه اشياء ما Update ميشن و و از يه DC به DC ديگه منتقل ميشن

وقتي به AD ما يه DC اضافه ميشه ، بين DC اي كه از قبل بوده و DC جديد يه لينك ارتباطي صورت ميگيره كه بهش ميگن "connection objects" و كل اشياء از DC قبلي كپي ميشن ميرن DC جديد

در هر DC در اكتيو دايركتوري يه سرويسي هست به نام Knowledge Consistency Checker (KCC) كه يه برنامس به زبان ساده و مسئوليتش همين Replication هست و اين لينك ارتباطي كه خط بالا گفتم "connection objects" رو اون ايجاد ميكنه و مسئول انتقال Object هاست

دليل وجود replication اينه كه اول مطمئن بشيم ديتا ها به صورت منظم و كامل در كل DC ها وجود داره و همه يه نسخه از اون ديتا رو دارند و درواقع اگر يه DC به مشكل خورد ما بكاپ داشته باشيم

نكته : Replication فقط بين DC هاي يك Forest صورت ميگيره

SYSVOL :

sysvol يك پوشس (folder) يا ميتونه (share) هم باشه ، كه فايل هاي public روي توي دامين رو ذخيره ميكنه و كپي ميگيره ازشون ، مثل system policies - Group Policy settings - logon/logoff scripts و..

همچنين شامل تمامي اسكريپت هايي ميشه كه تو AD اجرا شدن تا task خاصي رو انجام بدن

ديتاهاي sysvol هم براي ساير DC هاي ديگه Replicate ميشه ولي توسط يه چيز ديگه به اسم "File Replication Services (FRS)"

Sysvol
|____
| |____Policies
| |____Scripts
| |____ DO_NOT_REMOVE_NtFrs_PreInstall_Directory
| |____ NtFrs_PreExisting___See EventLog
|
|____Enterprise
| |____Policies
| |____Scripts
|
|____Staging
| |____Domain
| |____Enterprise
|
|____Staging Areas
| |____Enterprise (junction> = SysvolStagingEnterprise)
| |____Your Domain Name (junction> = SysvolStagingDomain)
|
|____Sysvol
| |____Enterprise (junction> = SysvolEnterprise)
| |____Your Domain Name (junction> = SysvolDomain)

Read-Only Domain Controller (RODC) :

يك نوع خاص از DC هست كه اطلاعاتش فقط خوانديه و database اش در حالت read-only هست، هيچگونه پسورد هيچ حسابي در AD در RODC نميمونه (Cache نميشه) { البته بجز پسورد خود اكانت RODC و پسورد هاي RODC KRBTGT}

هيچ تغييراتي روي اين RODC صورت نميگيره ، روي نميشه AD database يا SYSVOL ياحتي DNS سرورشو تغيير داد چون Read only هست ! و تغييرات sysvol از به بقيه DC ها منتقل نميشه !

نكته : برخلاف اكانت هاي AD ، ما نميتونيم به صورت مستقيم و تعاملي به اكانت krbtgt لاگين كنيم و باهاش تعامل داشته باشيم ، چون يه اكانت Built-in هستش و نام krbtgt هم نميشه عوض كرد !

نكته : به رخش نگاه نكنيد كه خيلي امنه ، ميزنيم ميتركونيمش :)

نكته : اين مفاهيم اگر براتون گنگه بايد حتما Kerboros و ساختارشو يادبگيريد تا اينا براتون جا بيفته !

FSMO Roles :

خب خب ، بشينيد ميخوام براتون قصه بگم :

يكي بود يكي نبود ، توي AD كبود ، مشكلي بود بين DC ها بر سر مديريت و فرمان دهي ، لوس بازي بسه

در اوايل شكل گيري AD يه مشكلي بود بر سر اينكه كدوم DC تصميم بگيره و تغييراتو اعمال كنه ، مايكروسافت امد و يه حركتي زد ، گفت قانون "last writer wins" رو بيام بنويسم كه ميگه هركي اخر همه نوشت اون اعمال بشه ، كه خب مشكلش اين بود كه اگر اخري تغييرات اشتباهي ميخواست بده چي؟ سازمان بايد به فنا ميرفت ؟

مايكروسافت امد گفت خب اولين DC دامينتون كه root level هم هست (والد همه هست) بياد تصميم بگيره ، درواقع حالت master - slave ايش كرد و خب مشكلي كه داشت اين بود كه اگر اون DC از دسترس خارج ميشد كل سازمان به مشكل ميخورد ! و مشكل SPF (Single Point of Failure) رو داشت

مايكروسافت امد گفت ، خـب حالا ما بياييم وظايف رو بين DC ها تقسيم كنيم و امد Flexible Single Master Operation (FSMO) رو ساخت

اين قوانين به DC ها اجازه ميده كه بدون تداخل باهم ديگه كاربران رو احراز بكنن

اين 5 قانون به اين صورتن :

Schema Master and Domain Naming Master (يدونه براي كل forest), Relative ID (RID) Master (يدونه براي هر دامين), Primary Domain Controller (PDC) Emulator (يدونه براي هر دامين), and Infrastructure Master (يدونه براي هر دامين)

تمامي قوانين به اولين DC توي forest ما اعمال ميشه و اگر دامين جديدي به forest ما اضافه بشه ، به DC اش فقط سه تا قانون اضافه ميشه : RID Master، PDC Emulator و Infrastructure Master

اين قوانين به كار كردن صحيح و روان شبكه كمك ميكنن ، ترافيك replication رو هم كنترل ميكنن و...

  • Schema Master :

اين قانون كل عمليات هاي read / write و copy رو در اكتيو دايركتوري مشخص ميكنه ، يعني ميشه تمامي attribute هايي كه اعمال ميشه به يه object در AD

Domain Naming Master : مديريت نام دامنه ها رو انجام ميده و مطمئن ميشه كه توي يك forest دوتا دامين با نام يكسان نداريم

  • Relative ID (RID) Master :

قبل اينكه اينو بگم بزاريد RID رو بگم :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

درواقع rid قسمتي از sid هست كه باعث منحصر به فرد شدنش ميشه

حالا RID Master چيكار ميكنه ؟ يه مشت از اين RID ها ميده به DC كه هر شئي امد تو شبكه بهش اختصاص بده و كار اصلي RID ام منحصر به فرد كردنه يعني اگر Domain identifier چند شئي يكي شد از لحاظ RID متفاوت بايد باشن

  • PDC Emulator :

اين دوست عزيز وظيفش چيه ؟

اگر هاستي يا همون كامپيوتري اين قانون بهش اعمال بشه توي دامين ، يك DC معتبر ميشه و ميتونه احراز هويت ها و اعمال مربوط به امنيت مثل تعويض پسورد ، احراز هويت ، GPO و... رو انجام بده

(زمان هم دست اين دوست عزيزمونه)

  • Infrastructure Master :

اين قانونم وظيفه تقسيم GUID - SUID - DN رو دامين ها داره (توي يك forest) و نشونه خرابي اين قانونم وقتيه كه ACL بجاي اينكه نام كامل يك شيئو نشون بده SID شو نشون بده ! اونوقته كه بايد اين Infrastructure Master درست بشه

 

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

AD Recycle Bin :

نوبتيم كه باشه نوبت سطح آشغاله :)

اما كاربردش چيه ؟ اگر در AD قصه ما Recycle Bin فعال باشه و ما شئي را پاك كنيم ميره توش و اگر بخوايم برش گردونيم نياز به بكاپ نيست ، براي مدت خاصيم اون شئي رو نگه ميداره تو خودش و بعدش كامل پاكش ميكنه

زمانش دست خودتونه و اگر ست نكنيد پيشفرض 60 روز نگه ميدار

Tombstone :

اين هم يك مكانيه در اكتيو دايركتوري قصه ما كه اشياء حذف شده رو نگه ميداره

وقتي شئي پاك ميشه اگر Recycle bin فعال نباشه مياد اينجا و تمام فلگ هاش پاك ميشه و فلگ isDeleted مقدارش True ميشه و مثل recycle bin مدت زمان داره كه بهش ميگن Tombstone Lifetime كه اگر بگذره ديگه فايلو كامل پاك ميكنه

نكته : فرق بين Recycle Bin و Timbstone چيه ؟ اگر شئي بره توي Recycle bin تمام attribute هاش حفظ ميشه ولي اگر بره تو Tombstone تمام attribute هاش پاك ميشه

Fully Qualified Domain Name (FQDN) :

به نام كامل ميگن FQDNو ساختارش اينطوريه :

[host name].[domain name].[tld]

و براي اين بكار ميره كه مكان يه شئي رو در DNS پيدا كنيم ، كاربرد FQDN اينه كه بدون دونستن آيپي يك شئي اون رو در AD پيدا كنيم ، دقيقا مثل google.com كه شما ايپيشو نميدونيد ولي نامشو ميزنيد و سايت مياد

سمپلشم اينطوريه :

Ali01.mamad.com

و ali01 نام hostname هستش ، براي كاربر علي ! حالا 01 ميتونه هرچي باشه عدد سن باشه هرچي!

Active Directory Users and Computers (ADUC) :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

برنامه گرافيكي ADUC براي مديريت AD ، البته با پاورشل هم ميشه باهاش ارتباط گرفت

ADSI Edit :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

يه برنامه گرافيكي براي مديريت اشياء در AD ، تفاوتش با ADUC اينه كه ميشه attribute هارو مديريت كرد و روي تك تك اشياء كنترل كامل داشت

AdminSDHolder :

اين داداشمون يك شيء هست كه براي مديريت ACLs هاي اعضا داخل گروه ( built-in groups in AD ) كه سطح دسترسي بالاييم دارن در AD وجود داره

درواقع مثل مفاهيم ديگه يه فضايي هست كه سطح امنيتي اعضايي كه جزو گروه محافظت شده ( protected groups ) هستن رو چك ميكنه

خب ما يه پردازش هم داريم به اسم SDProp (SD Propagator) كه روي نظم (هر يك ساعت يكبار) اجرا ميشه و مياد سطوح دسترسي داخل شئي AdminSDHolder رو با سطوح دسترسي داخل روي يكي از قوانين RODC اي كه بالاتر معرفي كردم (PDC Emulator Domain Controller)

فك كنيد يه مهاجم رفته و يك ACL entry آلوده ايجاد كرده كه مجوز هاي دسترسي يك يوزر خاص رو بگيره ، كه اين يوزر صد در صد چون سطح دسترسيش بالاعه جزو Domain Admins group هست

اگر تنظيمات ديگه اي در AD رو هم عوض نكنه و فقط به اين بسنده كنه ، وقتي SDProp process قصه ما اجرا بشه و سطح دسترسي هارو چك كنه ، پرتــــش ميكنه بيرون

(ما با اين دوست عزيز تو تست نفوذ اكتيو دايكتوري خيلي كار داريم)

dsHeuristics :

 بررسي جامع اصطلاحات و مفاهيم اكتيو دايركتوري

dsHeuristics در واقع يك رشتس (string) كه روي service object ها اعمال ميشه و تنظيمات و Configuration رو تعيين ميكنه در كل يك forest

اگر AdminSDHolder بالا رو خونده باشيد شايد يكم گيج بشيد كه چرا گفتي built-in groups بعد گفتي protected groups ، جريان چيه ؟

يكي از اين تنظيمات اينه كه بياد و built-in groups رو از Protected Groups جدا كنه (exclude) ، خاطرتون هست كه گفتم گروه هاي Protected توسط شئي AdminSDHolder و پردازش SDProp محافظت ميشن و بعد يه مدت خاص هر تغييري كه توي protected groups انجام توسط SDProp برميگرده به حالت اولش؟ حالا اگر ما بياييم يك گروه رو جدا كنيم از Protected Groups ، يعني بهش يك dsHeuristics attribute بزنيم ديگه SDProp به اون گروه كاري نداره و هر تغييري كه اعمال شه داخل اون گروه ديگه SDProp برش نميگردونه به حالت قبل و اولش !

adminCount :

يك attribute داريم در AD به نام adminCount كه مياد ميگه آيا SDProp process از يه user محافظت ميكنه
برچسب: آموزش هك, آموزش هك قانونمند, آموزش CEH, آموزش سكيوريتي پلاس،
ادامه مطلب

امتیاز:
 
بازدید:
+ نوشته شده: ۱۴ خرداد ۱۴۰۲ساعت: ۰۵:۲۱:۱۷ توسط:محمد نصيري موضوع:

نكات بالا بردن بازديد وب سايت با تغيير ساختار طراحي وب

 

چگونه بازديد وب سايت را با طراحي وب بالا ببريم؟ طراحي وب چه تاثيري در بالا بردن بازديد وب سايت دارد؟ داشتن يك طراحي وب جذاب براي موفقيت يك سايت بسيار مهم است، زيرا 38 درصد از بازديدكنندگان سايت را در صورتي كه از نظر بصري جذاب نباشد، ترك مي كنند. اگر به تازگي شروع به ايجاد سايت خود كرده ايد، ممكن است دشوار باشد كه بفهميد چه چيزي باعث حفظ يا دور كردن بازديدكنندگان مي شود. بنابراين، يادگيري در مورد بهترين شيوه هاي طراحي وب به شما نقطه شروعي براي تصميم گيري استراتژيك و جلوگيري از اشتباهات طراحي مي دهد.

در اين مقاله، راهنماي كاملي در مورد بهترين روش‌ها ارائه مي‌كنيم تا به شما كمك كند بازديدكنندگان بيشتري جذب كنيد و بهترين استفاده را از سايت خود ببريد. بهترين روش هاي طراحي وب سايت ، طراحي يك وب سايت جذاب نه تنها به توجه به زيبايي شناسي نياز دارد، بلكه به تجربه كاربري نيز نياز دارد ، عملكرد ضعيف باعث مي شود 42 درصد از مردم يك وب سايت را ترك كنند. همچنين نرخ تبديل را كاهش مي دهد و نرخ پرش را افزايش مي دهد و بر عملكرد و سئو سايت تأثير مي گذارد.

براي كمك به جلوگيري از اين مشكلات، نگاهي عميق به بهترين شيوه هاي طراحي وب بر اساس استاندارد هاي زير خواهيم داشت : نام تجاري سلسله مراتب بصري ، جهت يابي كد نويسي ، دسترسي نام تجاري ، برند سازي نقش مهمي در طراحي وب ايفا مي كند، زيرا ادراكات بازديدكنندگان از سايت شما را شكل مي دهد، به ايجاد اعتبار كمك مي كند و مشتريان بالقوه را جذب مي كند.

براي آسان‌تر كردن فرآيند، سه مرحله اصلي را براي اطمينان از برند سازي ثابت هنگام طراحي وب‌ سايت مرور مي‌كنيم.

1. بهترين روش هاي طراحي وب سايت

هدف خود را بشناسيد شناسايي مخاطبان خود به شما كمك مي كند تا برند سايت را تنظيم كنيد و طراحي آن را مطابق با آن سفارشي كنيد. در اينجا چندين روش براي كمك به درك مخاطبان وجود دارد:

تحليل مخاطب : در مورد جمعيت شناسي و روان شناختي مخاطبان خود تحقيق كنيد. اين شامل اطلاعاتي مانند محدوده سني، جنسيت، موقعيت مكاني، وضعيت اجتماعي-اقتصادي، علايق و انتخاب سبك زندگي مخاطبان شما مي شود. مصاحبه مشتري افرادي را كه قبلاً محصول يا خدمات شما را خريده اند به مصاحبه دعوت كنيد. علاوه بر ارائه بينش در مورد نوع فردي كه آنها هستند و چرا محصول شما را انتخاب كرده اند، به تقويت ارتباط با مخاطبان شما نيز كمك مي كند.تحليل رقبا به وب سايت و پروفايل هاي رسانه هاي اجتماعي رقيب خود نگاهي بيندازيد.

بهترين روش هاي طراحي وب

ببينيد آنها چگونه برند خود را قرار مي دهند و چه نوع محتوايي باعث ايجاد تعامل بيشتر مي شود. نكته تخصصي اولين قدم در طراحي يك وب سايت جديد، شناخت هدف و مخاطبان سايت شماست. به عنوان مثال، اگر يك وب سايت تجارت الكترونيك براي فروش اسباب بازي هاي آموزشي ايجاد مي كنيد، مشخص كنيد كه مشتريان چه كساني خواهند بود. ممكن است متوجه شويد كه بازار هدف شما بيشتر مادراني است كه براي اولين بار فرزند به دنيا مي آورند. بنابراين، مي‌خواهيد با استفاده از رنگ‌ها، فونت‌ها، تصاوير و طرح‌بندي مناسب در وب‌سايت خود، اين مخاطبان را جذب كنيد.

2. ايجاد پالت رنگي براي بازديد بيشتر وب سايت

يك پالت رنگ بسازيد در حالي كه انتخاب يك طرح رنگ براي سايت شما بصري به نظر مي رسد، انجام آن به صورت استراتژيك عناصر ضروري را برجسته مي كند، ادراك بازديد كنندگان شما را شكل مي دهد و آنها را وادار به اقدام مي كند. برندهايي كه به طور مداوم از رنگ‌ هاي يكسان در مواد بازاريابي خود استفاده مي‌كنند، نرخ شناسايي برند را تا 80 درصد بهبود مي‌بخشند.

بيشتر بدانيد : آموزش راه اندازي وب سايت بدون برنامه نويسي

بهترين روش هاي طراحي وب سايت براي ايجاد يك پالت رنگي جذاب عبارتند از : كاوش در تئوري رنگ قبل از ساختن يك پالت رنگ، خوب است بدانيد كه رنگ هاي خاص چه ارتباطي ممكن است داشته باشند. در مرحله بعد، انواع تم هاي رنگي مانند تك رنگ ، سه گانه ، مشابه و مكمل را بياموزيد تا تركيب رنگ خوبي براي برند خود پيدا كنيد. كنتراست را ناديده نگيريد استفاده از رنگ هاي بسيار متضاد خوانايي و دسترسي را بهبود مي بخشد.

از قانون 60/30/10 پيروي كنيد. يك رنگ اصلي را انتخاب كنيد كه 60٪ از سايت شما را تشكيل مي دهد و يك رنگ ثانويه براي 30٪ . 10% نهايي بايد از رنگ برجسته اي استفاده كند كه يا متضاد يا مكمل رنگ اصلي باشد. رنگ هاي مكمل را اجرا كنيد. در يك سايت پيمايش طولاني، استفاده از رنگ هاي مكمل مانند زرد و بنفش را براي تشخيص بخش ها در نظر بگيريد.به عنوان مثال، پالت رنگ در وب سايت Trevor Blount Pilates از سه رنگ اصلي تشكيل شده است ، كرم به عنوان اصلي، سياه به عنوان رنگ ثانويه و قرمز به عنوان رنگ برجسته. اين تركيب يك طرح رنگي ساده و در عين حال هماهنگ ايجاد مي كند و تمركز را روي عنوان وب سايت و تصوير برجسته قرار مي دهد. سايت Trevor Blount Pilates عنوان و تصوير قهرمان را در مركز نمايش مي دهد.

بهترين روش هاي طراحي وب

نكته تخصصي : من معمولا با يك رنگ اصلي شروع مي كنم و بر اساس آن طرح هاي رنگي مي سازم. اگر مبتدي هستيد و يك پالت رنگ مشابه يا تك نگاري را انتخاب مي كنيد، انتخاب سايه هاي نزديك ساده ترين راه است. با اين حال، اگر مي خواهيد رنگ اصلي برجسته باشد، يك طرح رنگ سه گانه يا رنگ هاي مكمل را انتخاب كنيد.در نهايت، رنگ هاي خنثي را اضافه كنيد تا متعادل شود. براي رنگ هاي فونت، از استفاده كامل سياه (000000#) خودداري كنيد و به جاي آن سايه كمي روشن تر انتخاب كنيد. انجام اين كار باعث كاهش خستگي چشم هنگام خواندن مطالب طولاني مي شود.

 

بيشتر بدانيد : اموزش ساخت فروشگاه و سايت پيشرفته

 

3. تايپوگرافي مناسب براي بازديد بيشتر وب سايت

تايپوگرافي يك سايت از سبك فونت، اندازه، ظاهر و ساختار تشكيل شده است. انتخاب تايپوگرافي وب سايت مناسب نه تنها زيبايي سايت را بهبود مي بخشد، بلكه تجربه و دسترسي كاربر را نيز بهينه مي كند. به عنوان مثال، براي انتقال پيام‌هاي جدي و اطلاعات مهم، سبك قلمي را انتخاب كنيد كه به اندازه فونت‌هاي سبك‌ دار حواس‌ تان را پرت نمي‌كند.

بهترين روش هاي ديگر طراحي وب براي بهبود تايپوگرافي سايت شما عبارتند از: تعداد سبك هاي فونت را محدود كنيد. استفاده از سبك هاي زياد باعث مي شود سايت شما غيرحرفه اي به نظر برسد. چسبيدن به دو سبك فونت سازگار بصري و در عين حال قابل تشخيص براي حفظ ثبات بهتر است. از فونت هاي ايمن وب استفاده كنيد. فونت هاي ايمن وب به احتمال زياد به شكل مورد نظر در مرورگرها و دستگاه هاي مختلف ارائه مي شوند و برند شما را ثابت نگه مي دارند و خوانايي سايت را بهينه مي كنند.

بهترين روش هاي طراحي وب

اندازه متن متناسب را تنظيم كنيد يك قانون خوب اين است كه متن وب سايت خود را روي حداقل اندازه 16 پيكسل يا 12 POINT تنظيم كنيد. براي آزمايش اندازه متن و پيش نمايش نحوه نمايش آنها در سايت، از ابزارهاي آنلاين مانند Gridlover استفاده كنيد. از 50 تا 75 كاراكتر در هر خط استفاده كنيد. براي جلوگيري از خستگي و خستگي چشم، كاراكترهاي بيشتري اضافه نكنيد.

سلسله مراتب بصري چيدمان استراتژيك عناصر طراحي، بازديدكنندگان را به بخش هاي مهم صفحه وب هدايت مي كند. در اينجا چندين فاكتور براي ايجاد يك سلسله مراتب بصري واضح وجود دارد:

  • تعادل نحوه توزيع : عناصر بصري توسط طراحان وب در صفحات سايت تعيين كننده تعادل آن است. هنگام تخصيص عناصر طراحي خود، مطمئن شويد كه آن را به تناسب انجام دهيد تا حس وحدت و جذابيت بصري ايجاد كنيد. بخش‌هاي زير محبوب‌ترين روش‌هاي طراحي را براي متعادل‌ تر كردن سايت شما پوشش مي‌دهند.

 

  • طراحي متقارن :طراحي متقارن با قرار دادن عناصر به طور مساوي در خط مركزي صفحه تعادل ايجاد مي كند. به عنوان مثال، اگر يك آيتم بصري سنگين در سمت راست داريد، بايد يك مورد به همان اندازه سنگين را در سمت چپ اضافه كنيد. اين نوع طراحي بسيار محبوب است زيرا براي همه اندازه هاي صفحه نمايش مناسب است. وب سايت نمونه كارها Adham Dannaway يك نمونه عالي از طراحي متقارن است. همانطور كه او كاريكاتور بزرگي از خود به عنوان نقطه كانوني مي سازد، بلوك هاي متن از نظر اندازه و موقعيت يكديگر را آينه مي كنند. صفحه اصلي نمونه كارها Adham Dannaway طراحي نامتقارن از سوي ديگر، چيدمان اقلام در طراحي نامتقارن از خط مركزي پيروي نمي كند. براي دستيابي به تعادل، طراحان رنگ ها و بافت ها را تركيب مي كنند يا چشم انداز را دستكاري مي كنند. به عنوان مثال، اگر عنصر برجسته تري را در نزديكي خط مركزي قرار دهيد، خوب است كه عنصر كوچكتر را كمي دورتر از آن قرار دهيد. ببينيد مرسدس بنز چگونه يك عنصر بزرگتر را با يك بلوك نوشتاري كوچك تر متعادل مي كند.

 

  • طراحي موزاييك : بر خلاف دو نوع ديگر، طرح موزاييك باعث ايجاد احساس ناراحتي مي شود. اين چيدمان به طور كلي حركت و عمل را نشان مي دهد و با سبكي مدرن و پويا مي تواند توجه را به خود جلب كند. وب سايت جانسون بنكس از شبكه هاي موزاييك مانند براي سازماندهي اطلاعات استفاده مي كند.

 

  • تركيب : تركيب به سازماندهي عناصر وب سايت براي دادن ساختار منسجم به سايت شما اشاره دارد. يك چارچوب پركاربرد قانون يك سوم است. اين روش با استفاده از شبكه‌اي از 9 كادر، يك طرح يا عكس را به يك سوم تقسيم مي‌كند و دستورالعمل‌هايي را براي تراز كردن متن، تنظيم اشيا و به طور كلي چيدمان عناصر ارائه مي‌كند. نمونه اي از اين قانون در عمل صفحه فرود هاستينگر است كه در آن عناصر به سه شبكه عمودي تقسيم مي شوند. صفحه فرود هاستينگر، با نمايش متن "Hosting + Free Domain" در مركز

بهترين روش هاي طراحي وب

  • مقياس : در طول فرآيند طراحي وب سايت، مي توانيد از مقياس براي جلب توجه به جزئيات مهم استفاده كنيد. در اينجا برخي از بهترين شيوه هاي طراحي وب براي استفاده از تفاوت اندازه به نفع خود آورده شده است: چوب با سه اندازه در حداكثر. اندازه هاي كوچك، متوسط ​​و بزرگ كافي است تا در عين داشتن سلسله مراتب وب سايت، تنوع را به شما بدهد. به طور كلي، اندازه ها از 14 پيكسل تا 16 پيكسل براي كپي متن، 18 پيكسل تا 22 پيكسل براي عنوان هاي فرعي و حداكثر تا 32 پيكسل براي عنوان ها متغير است. عناصر مهم را بزرگ كنيد حداكثر دو عنصر كليدي را براي بزرگ‌ نمايي انتخاب كنيد تا برجسته شوند. به عنوان مثال، وب سايت FluxAcademy با استفاده از يك فونت بزرگ بر روي كپي تأكيد مي كند. سايت فلوكس آكادمي متن بزرگي را در مركز نمايش مي دهد كه مي گويد "هنر و تجارت طراحي وب را بياموزيد"

 

  • الگو: هنگام بازديد از يك وب سايت، افراد از الگوي مشاهده خاصي براي اسكن محتوا پيروي مي كنند. بسته به نوع محتوا، عموماً از شكل حروف F و Z پيروي مي كنند. طراحي صفحه‌ آرايي مطابق با اين الگوها، جريان اطلاعات را هموار تر كرده و تجربه كاربري را بهبود مي‌بخشد. بياييد با جزئيات بيشتري به آنها نگاه كنيم. در الگوي Z، خوانندگان صفحه را از بالا سمت چپ به سمت راست بالا اسكن مي كنند. سپس به صورت مورب به سمت چپ پايين و در سراسر صفحه به سمت راست پايين اسكن مي كنند.

اين الگو براي طراحي صفحات با حداقل كپي و عناصر طراحي، مانند صفحات فرود، ايده آل است. الگوي F در همين حال، اين الگو از شكل "F" پيروي مي كند - بازديدكنندگان وب سايت محتوا را از بالا سمت چپ به سمت راست بالا اسكن مي كنند و اين روند را در خطوط زير تكرار مي كنند. بخش فناوري نيويورك تايمز از الگوي اسكن F پيروي مي كند قرار دادن مهم ترين محتوا در بالا بهترين كار براي جذب بازديد كنندگان است زيرا اولين چيزي است كه مي بينند. اين طرح‌بندي براي سايت‌هاي متني مانند نيويورك تايمز مناسب است.

  • فضاي خالي : فضاي خالي بين عناصر يك صفحه است. طراحان وب از آن براي شكستن متن، توجه به نكات خاص و ساده كردن تجربه كلي كاربر استفاده مي كنند. مي توانيد از رنگ، بافت و حتي تصاوير به عنوان فضاي خالي استفاده كنيد. برخي از بهترين شيوه هاي طراحي وب براي استفاده از فضاي خالي عبارتند از: از فضاي خالي ميكرو و ماكرو استفاده كنيد. فضاي خالي ميكرو با قرار دادن فضاي كافي بين كلمات و پاراگراف ها خوانايي را بهبود مي بخشد. در همين حال، فضاي سفيد ماكرو عناصر بزرگ‌تري مانند لوگو يا سرفصل‌هاي وب‌سايت را احاطه مي‌كند و باعث مي‌شود طراحي سايت متعادل و كمتر به هم ريخته شود. فضاي خالي بيش از حد باعث مي شود سايت شما خالي به نظر برسد، در حالي كه خيلي كم آن را به هم ريخته مي كند.

بيشتر بدانيد : دوره ها و اموزش هاي لازم براي ساخت وبسايت

  • گروه بندي : بر اساس اصل مجاورت، افراد اقلام نزديك به يكديگر را متعلق به يك گروه مي دانند. اگر موارد به اشتباه گروه بندي شوند، بازديدكنندگان در درك ساختار سايت شما و اينكه توجه خود را به كجا معطوف كنند مشكل خواهند داشت. براي گروه بندي كارآمد، چند نكته وجود دارد كه بايد در نظر داشته باشيد، مانند: آن را با فضاي خالي تركيب كنيد. از فضا براي گروه بندي و جداسازي عناصر با توجه به عملكرد آنها استفاده كنيد.عناصر اضافي را اضافه كنيد. مرزها و پس زمينه ها به عنوان نشانه هاي بصري، متمايز يا گروه بندي عناصر عمل مي كنند. فرم سفارش در وب‌ سايت آديداس نمونه خوبي از اين است كه چگونه گروه‌بندي اطلاعات مرتبط مرتب‌ سازي اطلاعات را آسان‌تر مي‌كند. فرم سفارش آديداس كه مكان‌هايي را براي آدرس حمل و نقل، گزينه‌هاي تحويل، جزئيات تماس و اعتبارنامه‌هاي ورود به سيستم نشان مي‌دهد.

 

  • بافت ها : بافت ها عناصر بصري شبيه يك سطح سه بعدي هستند كه به طراحي شما تضاد مي دهند. آنها ساختار سايت را تقويت مي كنند، صفحات متن سنگين را خواناتر مي كنند و لحن برند شما را مشخص مي كنند.به عنوان مثال، وب‌ سايت آژانس بلك شيپ از بافت براي افزودن شخصيت و بعد به يك پس‌ زمينه جامد كسل‌ كننده استفاده مي‌كند، عناصر را به هم گره مي‌زند و طراحي وب‌سايت را اصلاح‌ تر مي‌كند. آژانس بلك شيپ از يك فونت بزرگ براي عنوان سايت استفاده مي كند كه در مركز قرار داده شده است. در اينجا چند روش طراحي وب وجود دارد كه بايد هنگام افزودن بافت به سايت خود در نظر بگيريد: سادگي را هدف بگيريد بافت بيش از حد مي تواند بازديدكنندگان را تحت تأثير قرار دهد و توجه آنها را از محتواي شما منحرف كند. هدف آن را مشخص كنيد. از بافت ها عمدا استفاده كنيد، چه براي تقسيم بخش ها يا برجسته كردن تصاوير. متن را خوانا نگه داريد. بافت ها نبايد مركز توجه باشند يا اطلاعات مهم را تحت الشعاع قرار دهند.

بهترين روش هاي طراحي وب

  • تصاوير : تصاوير و ويديو هاي با كيفيت مي توانند وب سايت شما را از نظر بصري جذاب كنند و بازديدكنندگان را درگير خود نگه دارند. هنگامي كه آنها را به سايت خود اضافه مي كنيد، در اينجا بهترين روش هاي طراحي وب سايت وجود دارد كه بايد در نظر بگيريد: تصوير قهرمان را به نمايش بگذاريد. تصوير قهرمان كه در قسمت بالاي صفحه نمايش داده مي‌شود، اولين تصور را از برند شما ايجاد مي‌كند و به ايجاد اعتماد بين بازديدكنندگان كمك مي‌كند. وب سايت Garoa يك تصوير قهرمان از يك زن و متن "در هر فصل پوست خود را درمان كنيد" در مركز ارائه شده است. از چرخ فلك ها با دقت استفاده كنيد. چرخ فلك‌ هايي كه طراحي ضعيفي دارند ممكن است باعث حواس‌ پرتي شوند، دسترسي را كاهش دهند، يا حتي شبيه تبليغات شوند و بازديدكنندگان را وادار كند تا محتوا را مرور كنند. بنابراين، هر اسلايد را ساده و مرتبط نگه داريد و به بازديدكنندگان اجازه دهيد تا جريان خود را كنترل كنند. تصاوير و ويديوهاي واكنش گرا اضافه كنيد. طراحي واكنش گرا تضمين مي كند كه تصاوير بدون توجه به اندازه صفحه نمايش يا دستگاه به درستي نمايش داده مي شوند. علاوه بر اين، مطمئن شويد كه همه تصاوير را بهينه كنيد تا سريعتر بارگذاري شوند. به فرمت هاي تصوير دقت كنيد. انتخاب فرمت هاي تصوير صحيح مي تواند به بهبود عملكرد سايت و تجربه كاربري شما كمك كند. جهت يابي يكي ديگر از جنبه هاي مهم اين است كه اطمينان حاصل شود كه بازديد كنندگان مي توانند به طور يكپارچه در سايت شما حركت كنند و اطلاعات مهم را پيدا كنند.

در بخش‌هاي بعدي، بهترين شيوه‌هاي طراحي وب براي عناصر ناوبري را مورد بحث قرار خواهيم داد.

1. يك منوي بصري ايجاد كنيد به عنوان عنصر ناوبري اوليه كه بازديدكنندگان با آن تعامل دارند، هدف طراحان ايجاد منوهاي بصري و ساده است كه تجربه كاربري روان را تضمين مي كند. برخي از رويكردهاي محبوب براي طراحي منوي ناوبري عبارتند از: منوي افقي اين منوي پيمايش در بالاي يك سايت به عنوان يك نوار افقي ظاهر مي شود كه صفحات وب اصلي را فهرست مي كند. بيشتر وب‌ سايت‌ها از اين منوي پيمايش براي نمايش بخش‌ هايي استفاده مي‌كنند كه بازديد كنندگان انتظار دارند پيدا كنند، مانند «درباره»، «مخاطبين»، «محصولات» و «قيمت». از طرف ديگر، مي‌توانيد دسته‌هاي خاصي را فهرست كنيد تا محتواي مهم را برجسته كنيد

بيشتر بدانيد : هاست چيست؟

وب سايت Wozber از منوي افقي براي فهرست كردن محصولات و خدمات خود استفاده مي كند. منوي نوار كناري عمودياين نوع پيمايش منو داراي يك نوار كناري حاوي ليستي از پيوندها به صفحات خاص است. به عنوان مثال، رستوران Arbor از منوي نوار كناري عمودي قابل پيمايش با اطلاعات مربوط به رستوران، منوها ، رويدادها و گزينه‌هاي رزرو استفاده مي‌كند. وب سايت رستوران آربور از منوي عمودي نوار كناري استفاده مي كند. منوي كشويي همه صفحات موجود را پس از كليك كردن يا نگه داشتن ماوس روي آن توسط كاربران ليست مي كند. معمولاً توسط خرده‌ فروشان آنلاين استفاده مي‌شود، اين نوع منو براي وب‌ سايت‌هايي با صفحات زياد مناسب است، زيرا در عين حال دسترسي آسان را كاهش مي‌دهد.

بياييد وب سايت H&M را به عنوان مثال در نظر بگيريم. از آنجايي كه دسته بندي لباس هاي مختلفي را ارائه مي دهد، از يك نوار ناوبري سطح بالا براي نمايش موارد عمومي تر استفاده مي كند. هنگامي كه بازديدكنندگان روي بخش‌هاي خاصي كليك مي‌كنند يا نشان مي‌دهند، يك منوي كشويي حاوي فهرستي از دسته‌هاي خاص‌تر ظاهر مي‌شود. منوي كشويي H&M كه جزئيات مربوط به دسته بچه ها را نشان مي دهد.

منوي همبرگر ، اين نوع منو به صورت يك نماد سه خطي ظاهر مي شود. هنگامي كه بازديدكنندگان روي آن كليك مي كنند، يك منوي كشويي يا نوار كناري نمايش داده مي شود تا پيوندها را نشان دهد. منوي همبرگر يك گزينه عالي براي سايت هاي موبايل است زيرا از فضاي صفحه نمايش كمتري استفاده مي كند. علاوه بر اين، نماد به طور گسترده شناخته شده آن يك رابط بصري ايجاد مي كند. Google Maps يك برنامه محبوب است كه از اين نوع منوي ناوبري استفاده مي كند. منوي همبرگر در Google Maps

2. CTA ها و دكمه ها را به صورت استراتژيك قرار دهيد عملكرد اصلي يك فراخوان براي اقدام (CTA) اين است كه بازديد كنندگان را به انجام اقدامات و صرف زمان بيشتري در وب سايت شما سوق دهد. خواه يك متن، تصوير يا دكمه باشد، بايد آن را در جايي قرار دهيد كه به راحتي براي بازديدكنندگان قابل مشاهده باشد. نكته تخصصي براي ايجاد يك CTA متقاعد كننده، از كلمات ساده، قابل درك و كاربردي استفاده كنيد، مانند «شروع به كار»، «بيشتر بدانيد» و «افزودن به سبد خريد».

با انتخاب رنگ متضاد و استفاده از آن براي ساير عناصر قابل كليك، CTA خود را از بقيه مطالب متمايز كنيد.در نهايت، از فضاي خالي براي هدايت چشم بازديدكنندگان استفاده كنيد و CTA را به صورت استراتژيك براي جلب توجه قرار دهيد. علاوه بر اين، در نظر بگيريد كه چقدر تلاش مي شود تا روي دكمه CTA كليك كنيد، به خصوص در دستگاه هاي تلفن همراه. مقايسه قرارگيري خوب و بد يك دكمه CTA : وب سايت نتفليكس نمونه خوبي از بهترين شيوه هاي طراحي وب است. به عنوان مثال، دكمه‌هاي «شروع به كار» و «ورود به سيستم» از كنتراست رنگ، مقياس و فضاي خالي براي جلب توجه بازديدكنندگان استفاده مي‌كنند. صفحه فرود نتفليكس. نامحدود فيلم، برنامه هاي تلويزيوني، و بيشتر.

3. يك پاورقي اضافه كنيد : اغلب، بازديدكنندگان به پايين صفحه پيمايش مي كنند و انتظار دارند اطلاعاتي مانند جزئيات تماس، مشخصات شركت، پيوندهاي رسانه هاي اجتماعي و محصولات يا خدمات اضافي ارائه شده را بيابند. عناصري كه بايد در پاورقي بگنجانيد به اهداف سايت شما بستگي دارد، اما در مجموع، براي شفاف و موثر نگه داشتن آن، بهترين شيوه هاي طراحي وب را دنبال كنيد: از زبان واضح استفاده كنيد. از عبارات مبهم اجتناب كنيد تا بازديد كنندگان بدانند قبل از كليك بر روي يك پيوند چه انتظاري دارند. محتوا را به دسته ها تقسيم كنيد.

بيشتر بدانيد : تفاوت هاست و دومين در چيست؟

صفحاتي را كه مي خواهيد اضافه كنيد تعريف كنيد و آنها را گروه بندي كنيد تا مكان يابي محتوا آسان تر شود. طراحي آن را ساده و سازگار نگه داريد. اطمينان حاصل كنيد كه خوانا است و برندسازي ثابت را حفظ كنيد. لينك هاي خراب را بررسي كنيد. اطمينان حاصل كنيد كه همه پيوندها بازديدكنندگان را به محتواي مناسب هدايت مي كنند. وب سايت BrainBox AI يك نمونه عالي از يك پاورقي واضح و موثر دارد. با طراحي مينيماليستي، پاورقي آن به محتوايي كه در منوي اصلي موجود نيست، مانند صفحات مشاغل، شركا و مقالات، پيوند مي‌دهد. علاوه بر پيوندهاي ناوبري، بازديدكنندگان را نيز دعوت مي كند تا در خبرنامه خود ثبت نام كنند. بخش پاورقي BrainBox AI فرم ثبت نام در خبرنامه، منوي پيمايش عمودي و پيوندهاي رسانه هاي اجتماعي را نشان مي دهد.كد نويسي هنگامي كه يك طراحي خوب ساختار يافته و از نظر بصري دلپذير داريد، گام بعدي اين است كه مطمئن شويد سايت شما در موتورهاي جستجو قابل كشف است، بازديد آن ايمن است و به خوبي اجرا مي شود.

در بخش‌هاي بعدي، چندين استاندارد كد نويسي را پوشش خواهيم داد كه به شما در انجام اين كار كمك مي‌كند، از جمله SEO، رويكرد اول موبايل، امنيت سايت و عملكرد.

بهترين روش هاي طراحي وب

  • 1. سئو را تقويت كنيد: بهينه سازي موتورهاي جستجو (SEO) در هر استراتژي بازاريابي ديجيتال بسيار مهم است. اين به بهبود رتبه سايت شما در نتايج موتورهاي جستجو، جذب بازديدكنندگان بيشتر و افزايش تبديل كمك مي كند. شما مي توانيد سئوي سايت خود را با رعايت نكات آزمايش شده و آزمايش شده سئو وردپرس افزايش دهيد. به خاطر داشته باشيد كه بيشتر توصيه‌ها براي سايت‌هاي غير وردپرس نيز قابل اجرا هستند، مانند : توضيحات متا با كيفيت بنويسيد. يك توضيح جذاب، بازديدكنندگان را تشويق مي كند تا روي آن كليك كنند و ترافيك ارگانيك بيشتري را به سايت شما بياورند. متن هاي جايگزين را اضافه كنيد توصيف تصاويرتان با متن جايگزين، دسترسي افرادي را كه از صفحه‌خوان‌ها استفاده مي‌كنند، بهبود مي‌بخشد و به موتورهاي جستجو مانند Google كمك مي‌كند محتواي شما را درك كنند.ساختار URL را بهينه كنيد. براي كمك به موتورهاي جستجو در يافتن و درك بهتر محتواي سايت شما، كلمه كليدي تمركز را در URL خود قرار دهيد. علاوه بر اين، اجراي استانداردهاي كدنويسي زير سئوي سايت شما را نيز بهبود مي بخشد.

 

  • 2. از يك رويكرد موبايل اول استفاده كنيد : 50 درصد از ترافيك ارگانيك از دستگاه هاي تلفن همراه مي آيد، بنابراين مطمئن شويد كه سايت شما براي موبايل مناسب است. با رويكرد اول موبايل، طراحان سايت موبايل را قبل از رفتن به نسخه دسكتاپ ايجاد مي كنند. در حالي كه يكپارچه سازي يك طراحي واكنش گرا گزينه خوبي است، استفاده از اين رويكرد به شما مزيتي مي دهد. شروع با تلفن همراه و رفتن به صفحه نمايش هاي بزرگتر بسيار ساده تر خواهد بود، زيرا نيازي به حذف عناصر يا بازسازي كل طرح براي جا دادن صفحه نمايش هاي كوچكتر نخواهد بود. در اينجا چندين بهترين روش طراحي وب براي طراحي يك وب سايت سازگار با موبايل آورده شده است: اول محتوا را قرار دهيد قبل از افزودن عناصر ديگر، محتواي مهم را اولويت بندي كنيد تا بازديدكنندگان بتوانند به راحتي آنچه را كه به دنبال آن هستند پيدا كنند. ناوبري را بصري كنيد. از يك منوي بصري مانند دكمه همبرگر استفاده كنيد زيرا بازديدكنندگان به طور كلي با آن آشنا هستند و فضاي زيادي را اشغال نمي كند. همچنين، يك نوار جستجو اضافه كنيد تا يافتن مطالب ديگر آسان شود. پاپ آپ هاي مخرب را كاهش دهيد. در تلفن همراه، بازديدكنندگان ممكن است به طور تصادفي روي يك پنجره بازشو كليك كنند و در هنگام تلاش براي بستن آن، تجربه كاربري ناخوشايندي ايجاد كند. سايت خود را تست كنيد براي بررسي اينكه آيا سايت شما براي موبايل مناسب است يا خير، از تست دوستدار موبايل گوگل يا ابزارهاي ديگر استفاده كنيد.وب سايت پاسخگوي تلفن همراه HubSpot يك نمونه عالي از اين رويكرد است، با متني آسان براي خواندن، منوي همبرگر، و نوار جستجو براي اطمينان از ناوبري روان.

بيشتر بدانيد : استفاده از هاست يا سرور ؟

  • 3. سايت را ايمن نگه داريد : ايمن سازي وب سايت شما براي ايجاد اعتبار و جلوگيري از ضررهاي مالي و داده ها ضروري است. حتي اگر از يك پلت فرم امن مانند وردپرس استفاده مي كنيد، اجراي اقدامات امنيتي اضافي وب سايت به جلوگيري از تهديدات سايبري كمك مي كند. گواهي SSL دريافت كنيد. با گواهي SSL، انتقال داده ها بين سايت و بازديدكنندگان آن رمزگذاري مي شود تا از دسترسي كاربران غيرمجاز جلوگيري شود. اين به محافظت از داده‌هاي بازديدكنندگان كمك مي‌كند، به‌ ويژه اگر سايت شما از آن‌ها بخواهد اطلاعات حساسي را ارسال كنند. از اعتبار ورود خود محافظت كنيد. رمزهاي عبور قوي ايجاد كنيد و مرتباً آنها را به روز كنيد. با استفاده از مديريت رمز عبور مانند Password و فعال كردن احراز هويت دو مرحله اي، اعتبار خود را ايمن نگه داريد. نرم افزار ضد بدافزار نصب كنيد. به طور منظم كل سايت خود را براي بدافزار اسكن كنيد.يك ميزبان وب امن انتخاب كنيد. انتخاب يك پلتفرم ميزباني قابل اعتماد مانند هاستينگر، امنيت سايت شما را با گواهينامه هاي رايگان SSL و ويژگي هاي امنيتي سرور تقويت مي كند.

 

  • 4. بهينه سازي عملكرد سايت : اگر فرآيند بارگذاري بيش از 3 ثانيه طول بكشد، 40 درصد از بازديدكنندگان سايت را ترك خواهند كرد. از اين رو، بهينه سازي عملكرد سايت شما بايد در اولويت باشد. براي شروع، سرعت سايت خود را با ابزارهايي مانند GTmetrix بررسي كنيد تا مشكلات را شناسايي كرده و پيشنهاداتي براي رفع آنها دريافت كنيد. وب سايت شما چقدر سريع بارگذاري مي شود؟ با GTmetrix آشنا شويد. همچنين هنگام بهينه سازي وب سايت به اين نكات توجه كنيد: فعال كردن كش مرورگر ، كش كردن محتوا را در حافظه محلي ذخيره مي كند، بنابراين مرورگرها نيازي به بازيابي فايل هاي سايت شما از سرور ندارند و سرعت بارگذاري را بهبود مي بخشد. كد خود را كوچك كنيد كاراكترها و خطوط غير ضروري را از فايل هاي HTML، CSS و جاوا اسكريپت خود حذف كنيد. يك شبكه تحويل محتوا (CDN) راه اندازي كنيد. انتخاب يك برنامه ميزباني وب با CDN يك راه مناسب براي بهبود سرعت سايت است، زيرا محتواي ثابت را از نزديكترين سرور به بازديدكنندگان سايت ارائه مي دهد.

 

  • 5. طراحي براي دسترسي : دسترسي به وب يكي ديگر از جنبه هاي مهم طراحي وب است كه به افراد داراي معلوليت كمك مي كند تا به راحتي به محتواي شما دسترسي داشته باشند. هنگام طراحي براي دسترسي به وب، از استانداردهاي دسترسي W3C مانند اضافه كردن متن هاي جايگزين و توجه به كنتراست رنگ سايت خود پيروي كنيد. براي پيمايش بهتر، پيوندهاي قابل دسترسي با صفحه كليد ايجاد كنيد. در نهايت، از ابزارهاي تست تاييد شده توسط Web Accessibility Initiative استفاده كنيد تا بررسي كنيد كه آيا وب سايت شما با استانداردهاي دسترسي W3C مطابقت دارد يا خير. پياده‌ سازي ويژگي‌هاي دسترس‌ پذيري تجربه كاربر را بهبود مي‌بخشد، ترافيك ارگانيك بيشتري را به ارمغان مي‌ آورد و سئوي سايت شما را افزايش مي‌دهد. نكته تخصصي در آخرين مرحله از فرآيند طراحي وب سايت خود، خوب است كه طراحي وب خود را ارزيابي كنيد. در نظر بگيريد كه آيا هدف خود را برآورده مي كند و آيا بازديدكنندگان مي توانند به راحتي محتوا را اسكن و پيمايش كنند. براي انجام اين كار، مي توانيد از يك نقشه حرارتي آنلاين مانند نقشه حرارتي هوش مصنوعي Zyro يا يك ابزار تست قابليت استفاده سريع مانند Maze استفاده كنيد.نتيجه طراحي وب سايت مستلزم آزمون و خطاي زيادي است.

با اين حال، دانستن بهترين روش‌هاي طراحي وب به شما يك پايه محكم در هنگام تصميم‌گيري در مورد طراحي مي‌دهد. در اين مقاله، تمام آنچه را كه بايد در مورد طراحي يك وب سايت جذاب بر اساس استانداردهاي طراحي وب و اصول UI/UX بدانيد، پوشش داده ايم. به خاطر داشته باشيد كه هيچ راه درستي براي طراحي يك وب سايت وجود ندارد – چيزي كه براي يك سايت مناسب است ممكن است براي سايت ديگر كارايي نداشته باشد. جنبه كليدي كه بايد به خاطر بسپاريد اولويت بندي ثبات، دسترسي و تجربه كاربر است. اميدواريم اين مقاله براي شما مفيد بوده باشد.


برچسب: X آموزش طراحي وب ،آموزش طراحي سايت،آموزش PHP،آموزش HTML،آموزش CSS،آموزش جاوا اسكريپت،آموزش JavaScriptآموزش ساخت سايت،آموزش سئو،آموزش MySQL،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۳ خرداد ۱۴۰۲ساعت: ۰۴:۳۷:۴۳ توسط:محمد نصيري موضوع:

نسخه هاي مختلف اندرويد و برنامه نويسي براي نسخه هاي مختلف

با وجود اين كه هر نسخه اندرويد كه منتشر مي شود قابليت ها و بهبود هاي بسياري را معرفي مي كند ولي بايد تا وقتي كه يك مقدار از دستگاه هاي اندرويدي از ورژن هاي پايين تر استفاده مي كنند برنامه ما نيز ورژن هاي پايين تر را پشتيباني كند و دستگاه ها با ورژن پايين تر هم بتوانند از برنامه ما استفاده كنند و گرنه برنامه ما شكست مي خورد. در اين آدرس كه البته براي ما فيلتر هستند هميشه نشان مي دهد كه چند درصد از دستگاه ها از چه نسخه اندرويدي استفاده مي كنند و آمار اندازه صفحه نمايش دستگاه هاي اندرويدي را نمايش مي دهد. در اين مطلب مي خواهيم مشخص كنيم كه چگونه در يك برنامه اندرويدي مي توان با انواع نسخه هاي اندرويدي كار كرد.

مشخص كردن حداقل سطح API

در اندرويد بيشتر سطح API براي برنامه نويسان مهم است. براي مثال اندرويد API سطح 25 همان اندرويد 7.1 مي باشد. حال مي توان داخل پروژه اندرويد مشخص كرد كه حداقل نسخه اي كه برنامه ما بايد پشتيباني كند چه نسخه اي و چه سطح API مي باشد. براي اين كار در داخل فايل androidmanifest.xml بايد كد هاي زير را بياوريم. قسمت minsdk مشخص مي كند كه حداقل سطح api كه بايد پشتيباني كنيم كدام سطح است و سطح API كه مي خواهيم براي آن برنامه بنويسيم كدام است


    
   


در اين كد مي گوييم كه حداقل نسخه اي كه پشتيباني مي شود نسخه 17 يا همان اندرويد نسخه 4.2 مي باشد ولي اين برنامه براي اندرويد 7 نوشته مي شود. يعني اگر يك دستگاه كه نسخه 4 هست نمي تواند برنامه ما را نصب كند. حال ما نسخه هدف يا targetversion را برابر آخرين نسخه قرار مي دهيم در اين حالت مي توانيم از قابليت هايي كه در نسخه هاي آخر اضافه شده است در دستگاه هايي كه نسخه آخر را دارند استفاده كنيم.

مشخص كردن نسخه اندرويد در زمان اجرا

ممكن است كه وقتي مي خواهيم يك متد يا يك تكه كد را اجرا كنيم بررسي كنيم كه آيا نسخه اندرويدي كه برنامه بر روي آن در حال اجرا است همان نسخه اي است كه مد نظر ما است يا خير. مثلا اگر مي خواهيم از يكي از قابليت هاي نسخه 5 اندرويد استفاده كنيم ولي دستگاه داراي نسخه 4.4 باشد نمي توانيم اين قسمت را اجرا كنيم. براي اين كه به صورت runtime و زمان اجرا بتوانيم نسخه اندرويد را چك كنيم مي توانيم مانند كد زير عمل كنيم.

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP_MR1){
    //android 5 or higer
}

كد بالا بررسي مي كند كه نسخه اندرويد بالاتر از 5 مي باشد يا خير.

دقت داشته باشيد كه اگر در داخل فايل هاي xml شما از قابليت هاي اندرويد بالا تر استفاده كنيد و برنامه را بر روي دستگاه با اندرويد نسخه پايين تر نصب كنيد اندرويد آن قابليت هايي را كه شناسايي نمي كند ناديده مي گيرد.

براي آشناي بيشتر با مفاهيم و يادگيري بهتر به دوره هاي آموزشي جاوا و برنامه نويسي اندرويد مراجعه كنيد .


برچسب: X آموزش اندرويد. آموزش Android. دوره اندرويد. دوره آموزشي اندرويد،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۷ ارديبهشت ۱۴۰۲ساعت: ۰۹:۱۲:۳۰ توسط:محمد نصيري موضوع:

لينوكس Mint چيست ؟ معرفي لينوكس توزيع مينت به زبان بسيار ساده

تاكنون در توسينسو در خصوص توزيع هاي RedHat، Ubuntu، CentOS، OpenSUSE، Knoppix، Fedora، Debian و ... صحبت كرده ايم ، حقيقت اين است كه نمي توانيم در مورد تمامي توزيع هاي لينوكس صحبت كنيم و اين امر كاملا طبيعي است ، فقط تصميم گرفتم به عنوان معرفي آخرين نسخه از پر استفاده ترين توزيع هاي لينوكس به بررسي لينوكس توزيع Linux Mint بپردازيم كه به عنوان محبوب ترين لينوكس توزيع سال 2014 معرفي شد.
لينوكس توزيع Linux Mint بر پايه و اساس Ubuntu بنا نهاده شده است ؛ با توجه به اينكه خود Ubuntu برگرفته اي از Debian است بنابراين در نهايت توزيعي از Debian نيز به حساب مي آيد. اين سيستم عامل در كشور ايرلند توليد و به دنيا معرفي شد. Linux Mint از معماري i386 و 32 و 64 بيتي به خوبي پشتيباني مي كند . Linux Mint از دسكتاپ هاي Cinnamon ، GNOME، KDE، MATE و Xfce پشتيباني مي كند و در دسته بندي سيستم عامل هاي تازه كارها ، دسكتاپ ها و كاربران متوسط قرار مي گيرد. هسته اصلي Linux Mint بر پايه Ubuntu بنا نهاده شده است و هدف از معرفي اين توزيع ارائه يك نسخه متمايز از Ubuntu بوده است كه بتوانيد از Plugin هاي بيشتر ، Media Codec هاي بيشتر و بسياري از امكانات Java استفاده كنيد .
تلاش طراحان Linux Mint بر اين بوده است كه يك سيستم عامل مدرن ، زيبا و راحت معرفي كنند كه هم قدرتمند باشد و هم يادگيري ان ساده باشد. علاوه بر اينها در Linux Mint شما مي توانيد منوهاي دلخواه ايجاد كنيد و حتي Desktop خود را نيز بصورت دلخواه طراحي كنيد ، ابزارهاي پيكربندي منحصر به فرد و رابط مديريت بسته هاي نرم افزاري تحت وب اين سيستم عامل از ديگر امكانات ويژه آن است. Linux Mint بسيار با Ubuntu سازگار است و مي تواند براحتي از Repository هاي Ubuntu نيز استفاده كند.
نسخه هاي جديد Linux Mint اي كه بر پايه Ubuntu معرفي مي شوند تقريبا هر شش ماه يكبار معرفي مي شوند.اولين نسخه از اين سيستم عامل كه در سال 2006 معرفي شد به عنوان Ada ( تركي نيست باور كنيد D: ) معرفي شد ، Ada به خودي خود بر اساس توزيع لينوكس Kubuntu كه يك لينوكس برگرفته از Ubuntu بود ، سرچشمه گرفت. نسخه هفدهم اين سيستم عامل در سال 2014 به نام Qiana ( اينم باور كنيد فارسي نيست D: ) معرفي شد. پشتيباني از نسخه هاي قبلي اين سيستم عامل معمولا با معرفي نسخه جديد Linux Mint از بين مي رود اما نسخه هايي با پشتيباني دراز مدت هم از اين سيستم عامل معرفي شده اند كه تا 5 سال پشتيباني دارند. اين سيستم عامل هم معمولا نسخه هاي خود را با اسامي مختلفي معرفي مي كند كه از آن جمله مي توان به Barbara و Cassandra اشاره كرد.

يكي از دلايل موفقيت Linux Mint در آن بود كه از همه Repository هايي كه براي Ubuntu وجود داشت پشتيباني مي كرد ، يعني از ابتداي كار استفاده از بسته هاي نرم افزاري خود Linux Mint را براي كاربرانش محدود نكرد و همين موضوع باعث شد شركت توليد كننده اين امكان را به كاربران مي داد كه ضمن اينكه مي توانستند از بسته هاي Ubuntu استفاده كنند از بسته هايي كه بصورت ويژه براي Linux Mint هم معرفي مي شد استفاده كنند. اين موضوع باعث مي شود كه دو سيستم عامل Linux Mint و Ubuntu به خوبي با هم سازگاري داشته باشند. با اينكار Linux Mint خود را به عنوان يك شاخه جديد از Ubuntu معرفي نكرد و فرصت اين را پيدا كردن كه به مرور زمان يك توزيع مستقل شود.
در سال 2008 سيستم عامل Linux Mint تصميم گرفت روند ارائه نسخه هاي خود را با روند ارائه نسخه هاي Ubuntu هماهنگ كند، البته اين موضوع تا زمان ارائه نسخه Elyssa ( باور كنيد نميدونم چرا اينجوري اسم گذاشتن احتمالا از برو بچه هاي دهه شصتي بودن ) وجود داشت تا اينكه در همان سال براي بالا بردن هر چه بيشتر سازگاري بين دو سيستم عامل Linux Mint تصميم گرفت كه روند ارائه نسخه هاي خود را متوقف كند و يك روش جديد را براي معرفي Linux Mint پيش ببرد. با شروع كردن توزيع نسخه 6 از Linux Mint كه به Felicia ( خدارو شكر ربطي نداشت) معروف بود هر نسخه اي كه از Linux Mint ارائه مي شد كاملا با نسخه مقابل كه Ubuntu بود هماهنگ و سازگار بود.
تقريبا بعد از گذشت يك ماه از معرفي كردن نسخه جديد Ubuntu يك نسخه جديد از Linux Mint دقيقا با امكانات Ubuntu معرفي مي شود كه صد درصد توانايي هايي كه در Ubuntu وجود داشت را به همراه داشت ، اين دقيقا همان كاري بود كه CentOS با RedHat Enterprise انجام داد. در سال 2010 يك كار جالب توسط گروه Linux Mint اجرا شد كه به نام Linux Mint نسخه Debian معروف شد. برخلاف تمامي نسخه هايي از اين سيتسم عامل كه بر اساس Ubuntu طراحي مي شدند اين نسخه ها كاملا بر اساس توزيع Debian معرفي شدند و همين ترتيب معرفي با نسخه هاي جديد Debian را هم بكار بردند.
قابليت هاي Linux Mint
اكثر نرم افزارهايي كه در Linux Mint وجود دارند بصورت Open Source و Freeware هستند و تنها برخي از آنها بصورت Proprietary يا تجاري هستند. وجود برخي از نرم افزارهاي تجاري بر روي Linux Mint جاي تعجب دارد زيرا اكثر توزيع هاي لينوكس از اينگونه نرم افزارها بصورت پيشفرض بر روي سيستم عامل خود استفاده نمي كنند. Linux Mint با مجموعه تقريبا كاملي از نرم افزارهاي پيشفرض نصب شده اعم از LibreOffice ، Firefox ، Thunderbird ، XChat ، Pidgin ، Transmission ، GIMP و Cheese ارائه مي شود. نرم افزارهاي اضافه بر سازمان بصورت پيشفرض بر روي اين سيستم عامل نصب نمي شوند و شما مي توانيد توسط Package Manager آنها را دانلود و نصب كنيد.
شما با استفاده از فايروالي كه در Linux Mint بصورت پيشفرض وجود دارد مي توانيد پورت هاي مورد نظرتان در شبكه را مديريت كنيد. دسكتاپ هاي پيشفرضي كه بر روي Linux Mint نصب شده اند MATE و Cinnamon هستند كه از زبان هاي بسياري پشتيباني مي كنند. اگر تمايل به استفاده از ساير دسكتاپ هايي كه قبلا عنوان كرديم در Linux Mint داريد براحتي مي توانيد با استفاده از APT آنها را دريافت و نصب كنيد ، يكي از قابليت هاي جالبي كه در Linux Mint وجود دارد توانايي اجراي بسياري از برنامه هايي است كه در Microsoft Windows اجرا مي شوند ، براي مثال شما مي توانيد از Microsoft Office در Linux Mint استفاده كنيد ، با استفاده از ابزار Wine كه يك لايه سازگاري يا هماهنگي Compatibility Layer بين ويندوز و لينوكس ايجاد مي كند اين امكان فراهم شده است .
البته حتي اگر اين روش هم جواب نداد همچنان فناوري هاي مجازي سازي اعم از VMware Workstation و VirtualBox همچنان اين امكانات را در اختيار شما قرار مي دهند. البته گزارش هايي در خصوص مشكلات نسخه 16 سيستم عامل Linux Mint و پشتيباني از Wine و Multi-Monitor وجود دارد كه اين سازگاري را كمي زير سئوال مي برد اما به هر حال چنين قابليتي هر چند مشكل ساز در لينوكس توزيع Mint طراحي شده است.
علاوه بر APT كه Package Manager قابل اعتمادي است ، شما مي توانيد در Linux Mint از Synaptic و Software Manager اختصاصي Linux Mint نيز براي نصب Package هاي نرم افزاري خودتان استفاده كنيد. تيم برنامه نويسي و Community اي كه بر روي Linux Mint كار مي كنند بصورت وافعا فعالي مشغول توليد نرم افزار براي اين سيستم عامل هستند ، بيشتر نرم افزارهايي كه براي اين سيستم عامل نوشته مي شود به زبان برنامه نويسي Python و بصورت Open Source مي باشد كه در GitHub موجود مي باشند. GitHub يكSoftware Repository مخصوص Linux Mint دارد .

برچسب: آموزش لينوكس،آموزش Linux،دوره آموزش لينوكس،دوره آموزشي لينوكس،آموزش لينوكس اسنشيالز،آموزش لينوكس اسنشيال،،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۷ ارديبهشت ۱۴۰۲ساعت: ۰۴:۰۱:۵۹ توسط:محمد نصيري موضوع:

جاوا چيست؟ معرفي كامل زبان برنامه نويسي جاوا + كاربرد و ويژگي ها

جاوا چيست؟ زبان برنامه نويسي جاوا چه كاربردهايي دارد؟ آيا زبان جاوا براي شروع برنامه نويسي مناسب است؟ چه نوع برنامه‌هايي مي‌توان با زبان جاوا ساخت؟ زبان جاوا در چه محيط هايي كاربرد دارد؟ آيا در ايران از زبان جاوا استفاده مي شود؟ اين‌ها سؤالاتي هستند كه براي افرادي كه مي‌خواهند برنامه نويسي را شروع كنند ممكن است پيش بيايد. در اين مطلب زبان برنامه نويسي جاوا را معرفي مي‌كنيم و سؤالات گفته شده را پاسخ مي‌دهيم و قابليت‌هاي اين زبان قدرتمند و محبوب را بررسي مي‌كنيم.

برنامه كامپيوتري چيست؟

جاوا يك زبان برنامه نويسي است كه با آن مي‌توان برنامه‌هاي كامپيوتري توليد كرد. قبل از اينكه بخواهيم در مورد خود جاوا صحبت كنيم اول ببينيم كه برنامه كامپيوتري چيست؟ برنامه كامپيوتري مجموعه دستوراتي هستند كه در قالب يك بسته ايجاد شده‌اند و سيستم كامپيوتري كه به آن سخت‌افزار هم گفته مي‌شود، آن مجموعه دستورات را اجرا مي كند. اين مجموعه دستورات قالب و زبان خاصي دارند كه سيستم كامپيوتري قادر به خواندن و اجراي آن‌ها است. هر برنامه كامپيوتري وظيفه‌اي دارد و كاربرد مخصوص به خودش را دارد. بدون برنامه‌هاي كامپيوتري سيستم‌هاي كامپيوتري قادر به انجام هيچ كاري نيستند. 

برنامه‌هاي كامپيوتري كه نرم‌افزار هم ناميده مي‌شوند انواع مختلفي دارند كه در سطوح مختلف كار با سخت‌افزار عمل مي‌كنند مانند سيستم عامل ها كه مسئول مديريت سخت‌افزار هستند (مثل ويندوز و اندرويد و iOS) و برنامه‌هاي كامپيوتري كاربردي كه يكي از نياز هاي كاربران را برطرف مي كنند. مانند ماشين حساب و برنامه پيام رسان و مرورگر و …. شما هر روز براي كار هاي مختلف از برنامه‌هاي كامپيوتري در گوشي و تبلت و كامپيوتر خود براي هدف‌هاي مختلف استفاده مي كنيد.

برنامه نويسي چيست و برنامه نويس كيست؟

براي اينكه بدانيد جاوا چيست بايد ابتدا درك كنيد برنامه نويسي چيست . حال كه با برنامه كامپيوتري آشنا شديم فرايند طراحي و توليد و تست و نگهداري برنامه‌هاي كامپيوتري (نرم افزار) را برنامه نويسي مي‌گويند و كسي كه عمل برنامه نويسي را انجام مي‌دهد برنامه نويس نام دارد. البته توليد نرم‌افزار كار پيچيده‌اي است و به جاي يك شخص معمولاً نيازمند يك تيم برنامه نويسي است كه هر كدام از اعضا وظايف مخصوص به خود را دارند.

 

همچنين علم توليد نرم‌افزار و برنامه نويسي در حدي پيچيده است كه يك كار مهندسي بوده و داراي اصول و قواعد خود است. مهندسي نرم‌افزار بر روي انواع روش‌هاي توليد و نگهداري نرم‌افزار و نحوه پياده‌سازي پروژه هاي نرم افزاري تمركز دارد.كار برنامه نويس به اين صورت است كه برنامه را به يكي از زبان‌هاي برنامه نويسي براي كامپيوتر مي‌نويسد و بعد از آن برنامه نوشته شده تبديل به دستورات قابل فهم كامپيوتر مي‌شود كه اين كار را كامپايلر ها و يا مفسر ها انجام مي دهند. سپس آن برنامه اجرا مي شود. 

زبان جاوا چيست؟

اما زبان جاوا يا Java چيست؟ بعد از اينكه تا حدودي با كلمه برنامه و برنامه نويس آشنا شديم حال سؤال اصلي اين است كه زبان برنامه نويسي جاوا چيست؟ برنامه نويس براي توليد نرم‌افزار نيازمند اين است كه دستورات را در قالب يك زبان به سخت‌افزار ديكته كند. حال اين زبان بايد به گونه‌اي باشد كه به صورت دقيق منظور برنامه نويس را به سخت‌افزار اعلام كند. اينجاست كه نياز به زبان برنامه نويسي پيش مي‌آيد.

زبان برنامه نويسي زباني است كه به كمك آن برنامه نويس منظور خودش را براي كامپيوتر توضيح مي دهد. حال زبان جاوا يك زبان برنامه نويسي سطح بالاي شي گرا است. زبان سطح بالا يعني اينكه به زبان نوشتار انسان نزديك است. با استفاده از جاوا مي‌توان برنامه‌هاي مختلف و در اندازه هاي مختلف و در زمينه‌هاي مختلف توليد كرد.

نوشتار جاوا مانند زبان C و C++ (سي پلاس پلاس) است با اين تفاوت كه زبان جاوا به صورت كامل شي گرا است و تمايزاتي نسبت به زبان‌هاي قبلي گفته شده دارد. از مزاياي جاوا نسبت به سي و سي پلاس پلاس مديريت حافظه و مكانيزم جمع آوري زباله (garbage collection) و حذف اشاره گرها مي‌توان اشاره كرد.

همينطور برنامه نويسي به جاوا بسيار ساده‌تر شده است.با استفاده از جاوا مي‌توان  براي هر دستگاهي كه ماشين مجازي جاوا را داشته باشد مي‌توان برنامه نوشت. همچنين مي‌توان برنامه‌هاي تحت وب و دسكتاپ و موبايل و …. نيز با اين زبان نوشت.

تاريخچه جاوا چيست؟

در اوايل دهه 1990 ميلادي در شركت سان ميكروسيستمز (Sun Micro-systems) يك تيم به رهبري شخصي به نام جيمز گاسلينگ بر روي پروژه اي كار مي‌كردند كه زبان برنامه نويسي را توليد كنند تا به كمك آن بتوانند براي دستگاه‌هاي الكترونيكي برنامه بنويسند. نام اين پروژه Green بود.

 

نتيجه كار اين تيم ساخته شدن يك زبان برنامه نويسي به نام Oak بود كه طوري طراحي شده بود كه وابسته به پلتفرم خاصي نباشد و براي سيستم‌هاي تعبيه شده (embedded system) مناسب باشد.  در سال 1995 نام اين زبان از Oak به java تغيير داده شد و عرضه عمومي شد و اولين نسخه‌اي بود كه همه مي توانستند از آن استفاده كنند.
زبان جاوا به دليل امكاناتي مانند قابليت حمل (portability) كه با كمك آن كاربر مي‌توانست يك برنامه بنويسد و در پلتفرم ها و دستگاه‌هاي مختلف اجرا كند بسيار محبوب شد. در طي سال‌ها شركت سان قابليت‌هاي بيشتري به جاوا اضافه كرد و آن را گسترش داد و نسخه هاي جديد تر و كامل‌تر اين زبان را در اختيار برنامه نويسان قرار داد.
در سال 2009 شركت اوراكل شركت سان را خريداري كرد و از آن به بعد اوراكل جاوا را توسعه و نگهداري مي‌كند و قابليت‌هاي بسياري را به آن اضافه كرده است. امروزه جاوا به يكي از محبوب‌ترين زبان‌هاي برناهم نويسي تبديل شده است و به همين خاطر كتابخانه‌ها و فريمورك ها و ابزارهاي بسياري براي اين زبان توليد شده است كه مي‌تواند در بسياري از برنامه‌ها و پروژه هاي نرم افزاري استفاده شود.

 

علت محبوبيت جاوا چيست؟

جاوا قابليت‌هاي بسياري دارد كه باعث شده است به اين محبوبيت برسد اما چند تا از ويژگي‌هاي كليدي اين زبان عبارتند از:

۱. زبان جاوا يك زبان شي گراست

جاوا يك زبان كاملاً شي گرا است. اين به اين معني است كه براي برنامه نويسي جاوا بايد از مفاهيم و اصول شي گرايي تبعيت كنيد. قواعد شي گرايي به ما كمك مي‌كنند كه برنامه‌ها و نرم افزارهاي بزرگ را به ماژول ها و قطعات كوچك تبديل كنيم كه همين امر باعث مي‌شود كه بتوانيم از ماژول هاي توليد شده چندين وچند بار استفاده مجدد كنيم و به راحتي بتوانيم آن‌ها را مديريت نماييم.

۲. زبان جاوا وابستگي به پلتفرم خاصي ندارد

برنامه‌هاي جاوا به پلتفرم خاصي تعلق ندارند و آن‌ها را مي‌توان در هر پلتفرمي اجرا كرد يعني شما مي‌توانيد برنامه‌هاي جاوا را بر روي ويندوز يا لينوكس يا مك  اجرا كنيد. دليل اين كار هم اين است كه برنامه‌هاي جاوا بعد از نوشتن به بايت كد تبديل مي‌شوند كه اين بايت كد ها بر روي ماشين مجازي جاوا (JVM) اجرا خواهند شد.

۳.زبان جاوا مديريت حافظه را بصورت خودكار انجام مي دهد

مديريت حافظه در جاوا به صورت اتوماتيك انجام مي‌شود يعني لازم نيست كه برنامه نويس كاري براي مديريت حافظه انجام دهد درحالي كه اگر با زبانهايي مانند سي و سي پلاس پلاس كار كرده باشيد بايد خودتان اشياءي را كه كارتان با آن‌ها به پايان رسيده است را از حافظه پاك كنيد. ولي در جاوا jvm به صورت خودكار حافظه را به اشياء اختصاص مي‌دهد و بعد از اينكه كار برنامه نويس با آن‌ها تمام شد آن فضاهاي حافظه را پاك مي كند.

4.زبان جاوا يك زبان بسيار پايدار است

جاوا نوع داده‌هايي را كه برنامه نويس استفاده مي‌كند را به صورت دقيق بررسي مي‌كند كه اين كار باعث كاهش قابل توجهي از خطاهاي برنامه نويسي مي‌شود و همچنين قابليت پردازش استثناء (exception handling) باعث مي‌شود كه بسياري از خطاهاي زمان اجرا را مديريت كنيم و اين دو مكانيزم باعث مي‌شود كه خطاي برنامه‌ها تا حد زياد گرفته شود و برنامه‌ها هنگام اجرا پايدار تر باشند.

5. زبان جاوا داراي امنيت بسيار خوبي است

جاوا يك مدل امنيتي دارد كه اجازه نمي‌دهد كه ويروس ها و برنامه‌هاي خرابكار خود را در داخل برنامه و كدهاي اصلي جاسازي كنند. همچنين يك مكانيزم امنيتي ديگري به نام sandbox دارد كه اجازه نمي‌دهد سيستم و برنامه‌هاي ديگر به منبع برنامه‌هاي جاوا دسترسي داشته باشند و آن‌ها را تغيير دهند.

مطالعه بيشتر در مورد 4 مفهوم اصلي امنيت جاوا

6.زبان جاوا يك زبان چند Thread اي است

با استفاده از اين امكان جاوا برنامه نويسان قادر خواهند بود كه برنامه را به نخ هاي مختلفي تجزيه كنند. نخ هاي برنامه مي‌توانند به صورت همزمان با نخ هاي ديگر اجرا شوند و بخش‌هاي مختلف برنامه به صورت موازي اجرا شوند و كارايي برنامه‌ها بالا برود.

7.زبان جاوا يك زبان Cross Platform است ( پرتابل )

برنامه‌هاي جاوا را مي‌توان از يك پلتفرم به پلتفرم ديگر انتقال داد و در پلتفرم مقصد بدون اينكه نياز باشد دوباره كامپايل شوند اجرا كرد. فقط بايد در كامپيوتر مقصد jvm نصب شده باشد. با اين امكان ديگر لازم نيست كه برنامه نويسان نگران اين باشند كه برنامه نوشته شده قرار است در چه محيطي اجرا شود و سخت‌افزار و سيستم عامل مقصد چه چيزي است.

 

ماشين مجازي جاوا (Jvm) چيست؟

 در زبان‌هايي مانند سي و سي پلاس پلاس وقتي كه برنامه نويس برنامه‌اي را مي‌نوشت آن را مستقيماً به دستورات زبان ماشين كامپايل مي كرد. همين قضيه باعث بروز مشكلاتي مي‌شد. مثلاً معماري كامپيوتر ها و تعداد دستورالعمل هر كدام با كامپيوتر ديگر فرق داشت همچنين هر پلتفرم و هر سيستم عامل امكانات بخصوصي در اختيار برنامه نويسان قرار مي‌داد.

پس مجبور بوديم برنامه‌اي را كه مي نويسيم منطبق با همان محيط اجراي برنامه بنويسيم و قابليت حمل برنامه به محيط هاي ديگر از ما گرفته مي‌شد. با ظهور جاوا و معرفي ماشين مجازي اين مشكل برطرف شد. ماشين مجازي جاوا برنامه‌اي است كه بر روي سيستم نصب مي‌شود و محيطي را براي برنامه‌هاي جاوا فراهم مي‌كند كه بدون نگراني در مورد نوع ماشين و محيط اجرا و پلتفرم بتوانند اجرا شوند.

اين كار باعث مي‌شود كه برنامه نوشته شده در هر پلتفرمي به راحتي در يك پلتفرم ديگر قابل اجرا باشد. فقط هر محيط اجرا بايد jvm مربوط به خود را نصب كرده باشد. در اصل قضاياي مربوط به محيط اجرا و امكانات سيستم عامل و معماري سخت‌افزار و …. همه در jvm  بررسي مي‌شوند و پياده‌سازي هاي مربوطه انجام مي شود. در حقيقت ماشين مجازي جاوا يك لايه نرم افزاري است كه بين برنامه نوشته شده با جاوا و سيستم قرار مي‌گيرد و همه پيچيدگي هاي مربوط به پلتفرم را خودش مديريت مي‌كند و لازم نيست برنامه نگران اين مباحث باشد و بر روي هدف خود تمركز مي كند. 

بايت كد چيست؟

قبلاً گفتيم كه برنامه‌هايي كه به زبان جاوا نوشته مي‌شوند به زبان ماشين تبديل يا كامپايل نمي‌شوند. ولي برنامه نوشته شده به زبان جاوا به زبان(انگليسي) انسان بسيار نزديك است و قابل فهم براي كامپيوتر و jvm نيست. براي حل اين مشكل كدهاي جاوا به زباني تبديل مي‌شوند كه ماشين مجازي آن‌ها را مي فهمد.

به كدهايي كه توسط ماشين مجازي جاوا (jvm) قابل فهم است بايت كد گفته مي‌شود. به طور كلي برنامه‌هاي جاوا براي اجرا به بايت كد ها تبديل (كامپايل) مي‌شوند كه نتيجه اين عمل ساخته شدن فايل‌هايي با پسوند .class است و اين فايل‌هاي با پسوند class حاوي بايت كدهاي جاوا هستند. ماشين مجازي جاوا هم بايت كد ها را خط به خط خوانده و به زبان ماشين تفسير مي كند. هنگامي كه كدهاي زبان جاوا به بايت كد تبديل مي‌شوند بهينه سازي هايي در دستورات نوشته شده انجام مي‌شود كه سرعت و كارايي كد ها بالا تر برود.

تفاوت جاوا با جاوا اسكريپت چيست؟

از نظر اسمي جاوا و جاوا اسكريپت بسيار شبيه به هم هستند ولي بايد بدانيد كه اين دو زبان كاملاً با هم تفاوت دارند. جاوا اسكريپت در دهه 90 ميلادي توسط شركت Netscape توسعه داده شد و در ابتدا نام LiveScript را بر روي آن قرار داده بودند. زماني كه شركت نت اسكيپ متوجه شد كه كسي از زبان LiveScript استفاده نمي‌كند ولي محبوبيت زبان جاوا هر روز بيشتر مي‌شود نام آن را به JavaScript تغيير داد تا بتواند از موج محبوبيت جاوا براي زبان خودش نفعي برده باشد و موفق هم شد.

از نظر فني جاوا يك زبان برنامه نويسي قدرتمند است كه بر روي jvm اجرا مي‌شود ولي جاوا اسكريپت يك زبان اسكريپت نويسي است كه بر روي مرورگرها اجرا مي‌شود و بيشتر براي كار با front-end(بخش مربوط به مرورگر و تعامل با كاربر) مناسب مي‌باشد.

البته مي‌توان با استفاده از موتور هايي مانند nodejs براي سيستم هم با زبان جاوا اسكريپت برنامه ساخت. از نظر نوع زبان جاوا اسكريپت يك زبان مفسري (كامپايل نمي شود) است و گرامر آن با جاوا كاملاً متفاوت است. تنها شباهتي كه بين جاوا و جاوا اسكريپت وجود دارد اين است كه كدهاي هر دو شبيه به كدهاي زبان سي هستند و دستورات از زبان سي گرفته شده اند. ولي هم از نظر فني و هم از نظر كاربردي با هم كاملاً متفاوت هستند.

مطالعه بيشتر در مورد تفاوت جاوا و جاوااسكريپت

شي گرايي در جاوا چيست؟

وقتي مي‌گوييم جاوا يك زبان شي گرا است يعني براي نوشتن برنامه بايد از قواعد برنامه نويسي شي گرا در برنامه‌هاي جاوا استفاده كنيد. جاوا يك زبان كاملاً شي گرا است يعني به شما اجازه نمي‌دهد كه به غير از رويكرد شي گرايي رويكرد ديگري داشته باشيد. حال شي گرايي چيست؟ شي گرايي يا Object-Oriented Programming (OOP) يك الگوي برنامه‌نويسي است كه براي توسعه نرم‌افزارهاي پيچيده و قابل توسعه استفاده مي‌شود.

در اين الگو، برنامه‌نويسي از طريق تعريف شي‌ها انجام مي‌شود كه هر كدام شامل داده‌هاي خود و روش‌هايي براي كنترل و دسترسي به داده‌ها هستند. هر شي نمونه‌اي از يك كلاس است كه توسط برنامه‌نويس تعريف شده و مشخصات و رفتار آن شي توسط كلاس مشخص مي‌شود.
يكي از مزاياي شي گرايي، قابليت استفاده مجدد از كد است كه با استفاده از كلاس‌ها و شي‌هاي تعريف شده، برنامه‌نويسي انجام مي‌شود. همچنين، با استفاده از شي‌ها، برنامه‌نويس مي‌تواند براي هر شي تعريف شده، يك رفتار مشخصي را تعيين كند و اين باعث مي‌شود كه برنامه نهايي، به سادگي قابل فهم و قابل توسعه باشد.در شي گرايي، از اصطلاحاتي مانند ارث‌بري، پلي‌مورفيسم و كپسوله‌سازي نيز استفاده مي‌شود كه در كل به كمك آنها، كد برنامه به شكلي سازمان‌يافته، قابل فهم و قابل توسعه است.

زبان جاوا در كجا كاربرد دارد؟

زبان جاوا يكي از پركاربردترين زبان‌هاي برنامه‌نويسي در جهان است و در بسياري از زمينه‌هاي مختلف كاربرد دارد. در زير به برخي از كاربردهاي اين زبان اشاره مي‌كنم:

توسعه برنامه‌هاي كاربردي :  جاوا به عنوان يكي از زبان‌هاي پركاربرد براي توسعه برنامه‌هاي كاربردي استفاده مي‌شود. برنامه‌هاي اينترنتي، نرم‌افزارهاي موبايل، برنامه‌هاي دسكتاپ و بسياري از نرم‌افزارهاي ديگر از جاوا براي پياده‌سازي استفاده مي‌كنند.

توسعه وب :  جاوا به عنوان يك زبان برنامه‌نويسي سمت سرور براي توسعه برنامه‌هاي وب مورد استفاده قرار مي‌گيرد. ساختارهايي مانند Servlets، JSP و JSF براي توسعه برنامه‌هاي وب با استفاده از جاوا استفاده مي‌شوند.

توسعه بازي : جاوا به عنوان يكي از زبان‌هاي پركاربرد در توسعه بازي‌هاي كامپيوتري استفاده مي‌شود. بازي‌هاي بسياري مانند Minecraft، Runescape و Game of Thrones: Conquest با استفاده از جاوا توسعه داده شده‌اند.

توسعه برنامه‌هاي اندرويد : جاوا به عنوان زبان برنامه‌نويسي اصلي براي توسعه نرم‌افزارهاي اندرويد استفاده مي‌شود. اكثر نرم‌افزارهاي موبايل اندرويدي با استفاده از جاوا توسعه داده شده‌اند.

  1. راهكارهاي صنعتي و embedded system ها : با توجه به امكانات قابليت حمل و مديريت حافظه جاوا از آن در سيستم‌هاي اينترنت اشياء(IOT) و سيستم‌هاي embedded نيز استفاده مي‌شود مانند مودم ها و ماشين لباسشويي و كنترل ترافيك و ابزارهاي شبكه و  …

ابزارهاي توليد برنامه با جاوا چيست؟

براي توليد برنامه با جاوا نياز است كه در درجه اول jvm بر روي دستگاه نصب باشد و علاوه بر آن نياز به كامپايلر جاوا هم مي‌باشد كه كدهاي نوشته شده را به بايت كد كامپايل كند. همچنين كتابخانه‌هاي اصلي جاوا نيز لازم  است تا بتوان از آن‌كتابخانه ها كه از قبل آماده شده‌اند بسياري ازمشكلات برنامه را حل كرد. همه اين ابزارها در يك بسته به نام Java Development Kit (jdk) به معني كيت توسعه جاوا قرار داده شده است كه مي‌توانيد از اينترنت به صورت يك‌جا دانلود و نصب كنيد.


از ديگر ابزار هاي لازم براي توسعه جاوا يك محيط كد نويسي است كه به دو بخش تقسيم مي‌شود: ويرايشگر و IDE. براي توسعه جاوا مي‌توان از ويرايشگر هاي ساده مانند notepad ويندوز استفاده كرد و با استفاده از jdk آن را كامپايل و اجرا كرد. به غير از notepad ويندوز مي‌توان از هر ويرايشگر متني ديگر هم استفاده كرد مانند Atom , Visual Studio code , bracket , ….
ولي مسأله اي كه وجود دارد اين است كه اين‌ها فقط يك ويرايشگر ساده هستند (البته فرض مي‌كنيم از حالت خام ويرايشگر استفاده مي كنيم) و كمك زيادي در نوشتن و خطايابي و اجراي كد به ما نمي كنند. فرايند برنامه نويسي فرايندي زمان بر و حساس است و اگر ماشين نتواند كمك كند بسيار سخت خواهد شد.

به همين دليل نياز به يك ابزار قوي‌تر حس مي‌شود كه نام اين ابزار IDE يا محيط يكپارچه توسعه ناميده مي‌شود. در داخل IDE ها مي‌توان كد را نوشت و خطايابي كرد و آن را اجرا نمود. اين ابزار هم در نوشتن برنامه و هم در خطايابي به برنامه نويس بسيار كمك مي كند. براي جاوا IDE هاي متعددي وجود دارد كه از محبوب‌ترين آن‌ها مي‌توان به موارد زير اشاره كرد.

1. Eclipse يكي از محبوب‌ترين ابزارهاي توسعه جاوا كه قابليت‌هاي متنوعي مانند كدنويسي، اشكال‌زدايي و تجزيه و تحليل كد را ارائه مي‌دهد.

2. NetBeans  يك ابزار توسعه كامل براي توسعه برنامه‌هاي جاوا است. اين ابزار از زبان‌هاي ديگري مانند C، C ++ و HTML / CSS نيز پشتيباني مي‌كند.

3. IntelliJ IDEA ابزاري كارآمد براي توسعه برنامه‌هاي جاوا است كه قابليت‌هايي مانند اشكال‌زدايي، تحليل كد و كدنويسي پيشرفته را فراهم مي‌كند. من به طور شخصي از اين IDE استفاده مي كنم.

علاوه بر IDE ها نياز به ابزاري براي تست برنامه نوشته شده داريم تا ببينيم برنامه نوشته شده كيفيت و كارايي لازم را دارد كه براي اين كار Junit ابزار بسيار مفيدي خواهد بود. در پروژه هاي امروزي به دليل وجود كتابخانه‌هاي آماده زياد در پروژه اين نياز حس مي‌شود كه ابزاري وجود داشته باشد كه كتابخانه‌هاي آماده‌اي را كه در پروژه استفاده شده است را مديريت كند كه از بين آن‌ها مي‌توان به maven, gradle اشاره كرد.

تفاوت jdk, jre در جاوا چيست؟

Jdk را در بخش ابزار ها توضيح داديم و گفتيم كه بسته اي است كه شامل ماشين مجازي جاوا و كتابخانه‌هاي آماده همراه جاوا و كامپايلر جاوا (javac) و به طور كلي مواردي است كه براي برنامه نويسي جاوا لازم است. اما jre شامل كتابخانه‌ها و برنامه‌هايي است كه فقط در زمان اجراي برنامه‌هاي جاوا لازم است يعني ماشين مجازي جاوا و يك سري موارد كه هنگام اجراي برنامه‌هاي جاوا مورد نياز هستند. پس jre نسبت به jdk بسته كوچك‌تري است كه فقط براي اجرا شدن برنامه آماده جاوا استفاده مي‌شود ولي jdk شامل موارد بيشتري است كه براي برنامه نويسي زبان جاوا استفاده مي شود.

مطالعه بيشتر براي نصب jdk

تا كنون چه ويرايش هايي از جاوا منتشر شده است؟

تا كنون ۳ ويرايش از جاوا منتشر شده است كه هركدام براي منظور خاصي ارائه شده‌اند كه اين ويرايش ها عبارتند از J2SE , J2EE, J2ME كه هركدام را به صورت خلاصه توضيح داده ايم.

J2SE (Java 2 Standard Edition): اين ويرايش از جاوا براي توليد برنامه‌هاي تحت دسكتاپ و برنامه‌هاي سروري مورد استفاده قرار مي گرفت. اين ويرايش شامل كتابخانه‌هاي اصلي جاوا (Core) و ابزارها و ابزارهاي اجرايي آن‌ها مي‌باشد. اگر مي‌خواهيد برنامه دسكتاپ به همراه رابط كاربري (UI) و يا برنامه سروري بنويسيد اين ويرايش مناسب شما است.

J2EE (Java 2 Enterprise Edition): اين ويرايش براي توليد برنامه‌هاي تجاري مناسب است. در اين ويرايش همه امكانات J2SE قرار دارد به علاوه اينكه امكاناتي براي توليد برنامه‌هاي تحت وب و برنامه‌هاي توزيع شده و ساير برنامه‌هاي با اندازه هاي بزرگ در آن گنجانده شده است. J2EE به شما اين امكان را مي‌دهد كه بتوانيد برنامه‌هاي بسيار بزرگ با امنيت بالا و كارايي بالا توليد كنيد.

J2ME (Java 2 Micro Edition) : اين ويرايش زماني مورد استفاده قرار مي‌گرفت كه گوشي هاي موبايل نسل قبل از گوشي هاي هوشمند وجود داشت و شما برنامه‌هايي با پسوند jar بر روي گوشي خود نصب مي‌كرديد. اين ويرايش يك زيرمجموعه از J2SE بود كه برخي كتابخانه‌هاي جاوا را همراه خود داشت و در دستگاه‌هايي كه داراي محدوديت منابع سخت افزاري بودند استفاده مي‌شد.


ويرايش هايي كه گفته شد در حال حاضر به شكل گفته شده وجود ندارند و با نسخه هاي جديد جاوا جايگزين شده‌اند و نام J2EE به Java EE تغيير داده شده است و در حال حاضر J2SE به نام Core Java شناخته مي‌شود.

امكانات جاوا براي برنامه دسكتاپ چيست؟

مي‌دهند مانند ويرايشگر Microsoft word. حال با استفاده از جاوا مي‌توانيم برنامه‌هاي دسكتاپي توليد كنيم كه هم بر روي ويندوز و هم بر روي مك و هم بر روي لينوكس اجرا شوند. برنامه‌هاي دسكتاپ نيازمند طراحي رابط كاربري يا UI هستند. كه در جاوا كتابخانه‌ها و فريمورك هاي مختلفي براي توليد رابط كاربري وجود دارد كه محبوب‌ترين آن‌ها : JavaFX, Swing, SWT, AWT,  Jgoodies, مي‌باشد.

فريمورك هاي جاوا براي وب چيست؟

قبل از اينكه بگوييم فريمورك هاي وب جاوا چيست بهتر است بدانيم كه فريمورك چيست؟ فريمورك (framework) يا چهارچوب كاري مجموعه‌اي از ابزارها و كتابخانه‌ها وقالب هاي برنامه است كه امكان توليد برنامه را به ما مي دهد. فريمورك هاي وب ساختاري را در اختيار ما قرار مي‌دهد كه تا اپليكيشن هايي را براي وب بسازيم بدون اينكه درگير كارهاي تكراري و عمومي بشويم.
 امروزه استفاده از وب بسيار بيشتر از گذشته شده است و زبان‌هاي برنامه نويسي براي اينكه از بقيه عقب نباشند فريمورك هايي براي توليد برنامه‌هاي تحت وب ارائه كرده‌اند كه جاوا نيز از قافله عقب نمانده و فريمورك هاي قدرتمندي را براي طراحي و توسعه وب اپليكيشن هاي ارائه داده است كه تعداد آن‌ها بسيار زياد است ولي از بين آن‌ها معروف ترين آن‌ها عبارتند از: Spring, Struts, Java Server Faces (JSF) , Play, Vaadin

مطالعه بيشتر در مورد spring

مطالعه بيشتر در مورد spring boot

فريمورك هاي جاوا براي موبايل چيست؟

قبل از ظهور گوشي ها و تبلت هاي هوشمند جاوا با ويرايش J2ME دستي بر طراحي برنامه براي موبايل داشت اما بعد از اينكه گوشي ها و تبلت هاي هوشمند فراگير شدند بيشتر از گذشته از زبان جاوا براي برنامه نويسي استفاده شد. سيستم عامل اندرويد كه از جاوا به صورت كامل و اصلي‌ترين زبان پشتيباني مي‌كند.

از بين فريمورك هايي كه از جاوا براي طراحي برنامه‌هاي موبايل استفاده مي‌شود مي‌توان بهAndroid SDK اشاره كرد كه اصلي‌ترين بسته براي توليد برنامه‌هاي اندرويدي است اشاره كرد تا بتوان برنامه‌هاي قدرتمند اندرويدي را با آن توليد كرد. همچنين JavaFX Mobile كه با استفاده از امكانات JavaFX مي‌توان برنامه‌هاي مختلفي براي موبايل ساخت. همچنين فريمورك هايي وجود دارد كه منطق برنامه نويس را در قالب كدهاي javascript, html , css پياده‌سازي مي‌كنند ولي در پس زمينه از زبان جاوا استفاده مي‌كنند مانند React Native, PhoneGap, Ionic

برنامه نويسي بازي در جاوا چگونه است؟

با استفاده از جاوا به روش‌هاي مختلفي مي‌توان بازي‌هاي جذاب طراحي كرد. شما مي‌توانيد از قابليت‌هاي انيميشن و صدا و گرافيك هاي دو بعدي و سه بعدي در كتابخانه‌هاي UI استفاده كنيد و بازي بسازيد و يا از جاوا در موتورهاي بازي مانند Unity استفاده كنيد و بازي‌هاي با گرافيك بالا طراحي كنيد و يا از فريمورك هاي طراحي بازي جاوا استفاده كنيد. تعدادي از اين فريمورك ها عبارتند از: LibGDX و jMonkeyEngine و PlayN و LWJGL. 

برنامه نويسي هوش مصنوعي در جاوا چيست؟

براي اينكه بتوانيم برنامه‌هايي با قابليت‌هاي هوش مصنوعي با جاوا نوشت اول بايد با مفاهيم هوش مصنوعي آشنا باشيم و به نوعي با مدل ها و قواعد هوش مصنوعي و شاخه‌هاي متعدد آن‌ها آشنا باشيم. از شاخه‌هاي هوش مصنوعي مي‌توان به يادگيري ماشين و يادگيري عميق و پردازش زبان طبيعي و بينايي ماشين اشاره كرد. بعد از اينكه با مفاهيم هوش مصنوعي آشنا شديد مي‌توانيد از فريمورك هاي جاوا براي توسعه برنامه‌هاي هوش مصنوعي استفاده كنيد. تعدادي از اين فريمورك ها عبارتند از: TensorFlowو Keras و Deeplearning4j و Mahout و Java-ML

منظور از برنامه نويسي Big Data در جاوا چيست؟

با توجه به حجم زياد داده‌ها كه امروزه در صنايع مختلف نياز به ساز و كاري براي پردازش داده‌ها با حجم بسيار زياد است. براي پردازش و ذخيره سازي و آناليز داده‌هاي حجيم در جاوا فريمورك هاي متنوعي وجود دارد كه عبارتند از: Apache Hadoop و Apache Spark و Apache Flink و Apache Storm و Apache Cassandra و Apache Kafka

آيا يادگيري بانك هاي اطلاعاتي در كنار برنامه نويسي جاوا لازم است؟

برنامه‌هاي متنوعي امروزه توليد و استفاده مي‌شود اما از بين برنامه‌ها تعداد بسيار زيادي از برنامه‌ها نياز دارند كه داده‌هاي خود را در يك فضاي منسجم ذخيره كنند و به سرعت آن‌ها را واكشي كرده و از آن‌ها استفاده كنند.تقريبا همه  برنامه‌هاي تحت وب و برنامه‌هاي حسابداري و فروشگاهي و ماليات و اتوماسيون اداري و .. . همه اطلاعاتي را ذخيره مي‌كنند از آن اطلاعات استفاده مي كنند.

بنابراين بانك هاي اطلاعاتي را به صورت حياتي لازم دارند. اگر مي‌خواهيد يك برنامه نويس قوي جاوا باشيد بايد حتماً كار كردن و ارتباط با بانك هاي اطلاعاتي را ياد بگيريد. امروزه بانك هاي اطلاعاتي مختلفي وجود دارند كه در هر پروژه ممكن است از يك يا چند عدد از اين بانك هاي اطلاعاتي استفاده شود. در جاوا مي‌توان از انواع بانك هاي اطلاعاتي رابطه‌اي و غير رابطه‌اي استفاده كرد. از جمله اين بانك هاي اطلاعاتي مي‌توان به MySQL , Oracle, Sql Server, Postgres, Mongodb اشاره كرد. 

بازار كار و حقوق برنامه نويسي جاوا چگونه است؟

يادگيري جاوا شما را در مسيري قرار مي‌دهد كه داراي سيل عظيمي از فرصت هاي شغلي است. به خاطر فراگيري بسيار زياد اندرويد جاوا براي توسعه برنامه‌هاي اندرويدي بسيار مناسب مي باشد. حتي با وجود ظهور زبان كاتلين زبان جاوا هنوز يك زبان بسيار كاربردي براي توليد برنامه‌هاي اندرويدي و برنامه‌هاي موبايل است.

همچنين در سازمان هاي بزرگ كه امنيت داده‌ها و قابليت اعتماد براي آن سازمان ها مهم است زبان جاوا بسيار مورد استفاده قرار مي‌گيرد. سازمان هاي دولتي هم استقبال بسيار زيادي از جاوا مي كنند. پس با استفاده از اين زبان قادر خواهيد بود به سرعت شغل مناسب با حقوق مناسب پيدا كنيد و به سرعت در كار خود پيشرفت كنيد.

آيا يادگيري جاوا براي مهاجرت مناسب است؟

زبان جاوا هنوز به صورت گسترده در بسياري از كشورهاي دنيا استفاده مي‌شود و در بسياري از صنايع از جمله صنايع بانكي و مالي و در اپليكيشن هاي زيادي مورد استفاده قرار مي گيرد. اگر به آگهي هاي استخدام در سايت‌هاي مانند LinkedIn سر بزنيد تعداد زيادي از آگهي هاي برنامه نويس جاوا را خواهيد يافت. پس مي‌توانيد با يادگيري جاوا شرايط را براي مهاجرت ساده‌تر كنيد. از شركت هاي بزرگي كه از جاوا استفاده مي‌كنند عبارتند از: Amazon و eBay و LinkedIn و Uber و Airbnb و Twitter و Netflix و Google و Spotify و Dropbox

آيا با وجود زبان‌هاي مانند كاتلين باز هم از جاوا استفاده مي شود؟

زبان‌هاي متفاوتي بر روي JVM ارائه شده‌اند كه يكي از آن‌ها كاتلين است. كاتلين در حال رشد است ولي هنوز جاوا يكي از محبوب‌ترين زبان‌هاي برنامه نويسي در دنيا است. با توجه به استفاده گسترده از جاوا در سازمان ها و صنايع مختلف جاوا بسيار بازار خوبي دارد و از آن استفاده مي شود. همچنين شركت اوراكل قابليت‌هاي جالب بسياري را سالانه به اين زبان اضافه مي‌كند كه مورد استقبال برنامه نويسان زيادي است.

آيا جاوا زبان خوبي براي شروع يادگيري برنامه نويسي است؟

بله جاوا يك انتخاب بسيار عالي براي يادگيري برنامه نويسي است. به خاطر اينكه جاوا يك زبان شي گرا است قابل فهم تر است چون از ماهيت اشياء در فضاي واقعي الهام مي‌گيرد. همچنين داكيومنت ها و منابع يادگيري بسياري براي جاوا وجود دارد كه در صورت وجود مشكل و سؤال مي‌توان از آن استفاده كرد. سينتكس جاوا شبيه به خانواده زبان سي است و با يادگيري آن مي‌توانيد كد ها و مفهوم ساير زبانهاي خانواده سي و javascript و بسياري ديگر از زبانها را به سادگي ياد بگيريد. اگر جاوا را براي يادگيري انتخاب كنيد برنامه نويسي را به صورت اصولي ياد خواهيد گرفت.

مطالعه بيشتر : 15 نكته در مورد يادگيري جاوا

پيش نياز يادگيري جاوا چيست؟

براي اينكه يادگيري جاوا را شروع كنيد قبل از آن نياز به يك سري پيش نياز ها است. اولين آن يك سيستم كامپيوتري است كه بتوانيد كدها را در داخل آن بنويسيد و اجرا و خطايابي كنيد. سپس به يك خط اينترنت نياز داريد كه آموزش‌ها را دريافت كرده و درصورت مشكل به دنبال راه حل آن در وب باشيد. قبل از اينكه برنامه نويسي را شروع كنيد نياز است كه تا حدودي بلد باشيد با كامپيوتر كار كنيد و با محيط آن آشنا باشيد و بهتر است با نصب نرم‌افزار ها و جستجو در وب و كار با برنامه‌هاي عمومي نيز آشنا باشيد.

همچنين داشتن دانش ابتدايي در مورد روش پردازش كامپيوتر و وظايف رم و پردازنده آشنا باشيد. همچنين دانش زبان انگليسي هميشه در برنامه نويسي مي‌تواند شما را چندين قدم به جلو تر ببرد. نكته آخر اين است  كه براي يادگيري برنامه نويسي (چه جاوا و چه هر زبان ديگري) نيازمند حوصله و وقت و پشتكار هستيد.

چگونه يادگيري جاوا را شروع كنم؟

حال كه با زبان جاوا آشنا شده‌ايد و اگر تصميم داريد كه جاوا را ياد بگيريد سؤال پيش مي‌آيد كه از كجا بايد شروع كرد. براي شروع جاوا ابتدا بايد يك سيستم كامپيوتري داشته باشيد (روميزي يا لپتاپ) و از منابع و آموزش‌هاي موجود يكي را انتخاب كنيد و ابزارهاي مورد نياز را كه توضيح داديم نصب كنيد و يادگيري را شروع كنيد.

فقط بايد به اين نكته دقت كنيد كه يادگيري برنامه نويسي نيازمند تمرين بسيار زياد است پس هر چقدر مي‌توانيد تمرين كنيد و براي خودتان مسأله طرح كنيد و برنامه آن را بنويسيد. يكي از بهترين گزينه هاي به عنوان منبع يادگيري جاوا دوره آموزش جاوا موجود در سايت توسينسو است كه جاوا را از شروع تا سطح پيشرفته آموزش داده است و مثال‌ها و پروژه هاي زيادي را به همراه خود دارد همچنين در صورت ايجاد مشكل و ابهام مي‌توانيد از پشتيباني و راهنمايي استاد دوره استفاده كنيد.

يادگيري جاوا چقدر زمان مي خواهد؟

اينكه بتوانيم يك نسخه براي يادگيري جاوا به همه ارائه بدهيم كاري غيرممكن است. نمي‌توان به همه گفت كه با طي چه مدت زماني مي‌تواند يك برنامه نويس ماهر جاوا شود. زيرا كه فاكتور هاي بسياري را بايد در نظر گرفت فاكتور هايي مانند دانش پس زمينه افراد و شور اشتياق آن‌ها براي يادگيري و مدت زماني كه براي يادگيري اختصاص مي‌دهند و پشتكار آن‌ها و مقدار تمرين و بسياري از موارد ديگر را مي‌توان در نظر گرفت. ولي به صورت كلي مي‌توان گفت با اختصاص روزانه 5 ساعت و اختصاص يك حدوداً يك سال تمرين و مطالعه مداوم مي‌توانيد يك برنامه نويس جاواي موفق شويد.خب اميدوارم كه اين مطلب توانسته باشد ديد كلي در مورد زبان جاوا در اختيار شما عزيزان قرار بدهد. مشتاق ديدن نظرات شما هستم.


برچسب: X آموزش سي شارپ، آموزش C# ،دوره سي شارپ، دوره آموزشي سي شارپ آمو،زش جاوا، آموزش Java، آموزش زبان برنامه نويسي جاوا، آموزش زبان برنامه نويسي سي شارپ، آموزش جنگو ،دوره آموزشي جنگو،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۷ ارديبهشت ۱۴۰۲ساعت: ۰۳:۰۸:۳۷ توسط:محمد نصيري موضوع:

آموزش رفع خطاي Gradle در اندرويد استوديو و ساخت و اجراي پروژه

 

 

چگونه مشكل Gradle در اندرويد استوديو را حل كنيم؟ دوستاني كه مي خواهند برنامه نويسي اندرويد را با استفاده از اندرويد استوديو شروع كنند ممكن است در ابتداي كار به يك مشكل برخورد كنند. يعني هنگامي كه شما براي بار اول يك پروژه در اندرويد استوديو مي سازيد ممكن است كه پروژه شما BUILD نشود. حالا دليل آن چيست؟ پيام مي دهد كه gradle نتوانست فلان پكيج را بگيرد و build كند. حالا براي اين چه كاري بايد انجام داد؟ در اين مطلب اين مشكل را توضيح مي دهيم. اين مشكل از آنجايي مهم است كه شما ويديو هاي آموزشي زبان خارجي را هم اگر ببينيد اين مشكل در آنها وجود ندارد و فقط اين مشكل براي ما به وجود مي آيد. عكس زير يك پيام از همين نوع خطاها به ما نشان داده مي شود.

تعريف gradle

براي توضيح اين مشكل اول بايد ببينيم كه gradle كه اين همه با آن در اندرويد استوديو درگير هستيم چيه. Gradle يك سيستم build manager و يك dependency manger مي باشد. حالا اينا كه گفتم يعني چي. ببينيد در زبان هاي جديد مثل جاوا و سي شارپ ما در پروژه هاي خودمون از پكيج ها و كتابخانه هاي مختلفي استفاده مي كنيم.اگر ما خودمون فايل هاي jar براي جاوا و يا فايل هاي dll براي سي شارپ را دانلود كنيم و به برنامه اضافه كنيم به مشكلات زيادي برخورد مي كنيم. چرا كه مكان فيزيكي فايل ها را براي ادرس دهي مد نظر قرار مي دهيم و اگر پروژه را جابه جا كنيم و يا فايل كتابخانه مورد نظر را جابه جا كنيم برنامه خطا ميدهد و كلي دردسر براي شما پيش خواهد آمد.

براي حل اين مشكل در زبان هاي مختلف و تكنولوژي هاي مختلف سيستم هايي قرار داده شده است كه برنامه وابستگي هاي خود را از آنها تامين مي كند و كتابخانه هايي را كه مي خواهيم اضافه كنيم را مديريت مي كند. حالا اگر بخواهيم كتابخانه را آپديت كنيم از اين سيستم استفاده مي كنيم. اگر بخواهيم كتابخانه ديگري اضافه كنيم از اين سيستم استفاده مي كنيم. اگر بخواهيم برنامه را به جاي ديگري ببريم مي توانيم كتابخانه ها را با استفاده از اين سيستم دانلود كنيم.به اين نوع سيستم ها build manager يا dependency manager گفته مي شود. از سيستم هاي مديريت وابستگي مي توان nugget را در تكنولوزي دات نت نام برد. در زبان جاوا مي توان سيستم هاي maven , gradle را نام برد. اندرويد استوديو براي مديريت وابستگي ها از gradle استفاده مي كند.

حل مشكل خطاي gradle

براي حل خطاي اين مشكل كه گفتيم بايد سيستم gradle بتواند كتابخانه هاي خود را از اينترنت دانلود كند. اكثر كتابخانه هايي كه در اندرويد استفاده مي شود در سايت گوگل وجود دارد. دسترسي به قسمت اندرويد سايت گوگل براي كاربران ايراني مسدود مي باشد و كاربران ايراني نمي توانند از اين سايت كتابخانه اي دانلود كنند.

الان متوجه مي شويم كه دليل اين كه در فيلم هاي آموزشي خارجي اين مشكل وجود ندارد چيست. براي اين كه اين مشكل حل شود بايد كتابخانه مورد نظر دانلود شود تا برنامه gradle اجازه دهد پروژه build شود. براي اين كه اين فرايند به خوبي طي شود شما بايد با IP غير ايراني به اينترنت متصل شويد تا گوگل با سيستم شما مشكلي نداشته باشد و اجازه دانلود كتابخانه مورد نظر را به شما بدهد.

مطالعه بيشتر 5 دليل كمبود حافظه در اندرويد و نحوه مديريت آن

بعد از اين كه پروژه شما براي اولين بار build شد ديگر نيازي نيست كه با IP كشور ديگري به اينترنت متصل شويد و يا حتي به اينترنت متصل شويد. ولي براي اولين بار بايد اين راه را برويد. اگر شما بخواهيد يك كتابخانه جديد را به پروژه خودتان اضافه كنيد بايد اين راه را دوباره برويد. يعني با IP يك كشور ديگر به اينترنت متصل شويد و بعد از اين كه يك بار پروژه شما بيلد شد ديگر راحت باشيد. اميدوارم روزي برسد كه ما نيز با خيال راحت به سرويس هايي كه براي ساير مردم دنيا رايگان و باز است دسترسي داشته باشيم.

براي يادگيري بيشتر و بهتر و تخصصي مفاهيم به دوره هاي آموزشي برنامه نويسي جاوا و برنامه نويسي اندرويد مراجعه كنيد.


برچسب: X آموزش اندرويد. آموزش Android. دوره اندرويد. دوره آموزشي اندرويد،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۷ ارديبهشت ۱۴۰۲ساعت: ۰۲:۵۴:۲۶ توسط:محمد نصيري موضوع: