De.coder
474 subscribers
457 photos
44 videos
191 files
300 links
Download Telegram
System programming:

برنامه نویسی سیستمی نوعی فعالیت در زمینه برنامه نویسی نرم افزار هست.

برای درک بهتر این مورد به این مثال توجه کنید :
تفاوت برنامه نویسی سیستمی با برنامه نویسی کاربردی در این است :
برنامه نویسی کاربردی ویا به عبارت دیگر application programming در ضمینه ارتباط با کاربر معنا دارد مثلا شما میخوایید برنامه word بسازید این برنامه جزو برنامهای کار بردی محسوب شده که به صورت مستقیم با کاربر در ارتباط هست.

برنامه سازی سیستمی یا به عبارت دیگر میتوان گفت system programming برنامه ای رو تولید میکنه که بستری برای برنامهای دیگر هست. یعنی با این نوع برنامه نویسی میتوانید بستری برای اجرا و تولید برنامهای دیگر بر روی سیستم خود پیاده کنید و اصطلاحا سرویسی را به برنامه های دیگر ارائه میدهد . برای مثال هم میتوان به سیستم عامل ویا saas ویا game engine اشاره کرد.

هدف از برنامه سازی سیستمی این است که شما بتوانید بهترین و موثر ترین روش برای استفاده از منابع سیستم و یا سخت افزاری رو داشته باشید.

اگر علاقه مند به این زمینه هستید میتونید از کتاب
Hands-On system programming with C++17

که در سایت dcdr.ir قرار داده شده استفاده کنید و یک تجربه جدید در زمینه برنامه نویسی داشته باشید.

@de_coder
De.coder
Photo
فلسک یک framework به زبان python بوده که بر روی نسخه 2 و 3 پایتون نیز قابل نصب و راه اندازیه .
از قابلیت های این فریم ورک میتوان به ساده بودن ، انعطاف پذیری بالا ، سرعت بالا و مناسب اشاره کرد .

فلسک یک micro web framework هست .
دلیل میکرو بودنش هم اجباری نبودن کتابخانه و یا ماژول های مشخص و خاص میباشد. هیچ لایه ای از db نداره پس قوانین mvc اجباری نیست. اما این به این معنی نیستش که نمیتونید به db وصل شید و استفاده کنید .
اعتبار سنجی فرم نداره. اما قابل پیاده سازی .
روش مختلفی برای احراز هویت داره.

فلسک از orm پشتیبانی میکنه و همچنین از کتابخانهای استانداردهای پایتون . نرم افزار هایی که از فلسک استفاده کردن میتوان به linkdin و pintrest اشاره کرد.

فسلک شامل :

Development server and debugger

Integrated support for unit testing

RestFul request dispatch

Use jinja2

Support for secure cookies

Google app engine compatibility

Etc.

🖥 برای دانلود کتابهای مربوط به این موضوع به سایت dcdr.ir مراجعه کنید.

@de_coder
👍1
Django :

یکی دیگر از فریم ورک های پایتون که بسیار محبوب بوده و عرضه آن به عنوان یک فریم بر اساس پایتون زود تر از بقیه بوده میتوان به django اشاره کرد .

این فریم وردک زودتر از فلسک وارد بازار شده و از فلسک عمر طولانی تری داشته .

این فریم ورک بصورت رایگان و منبع باز انتشار یافته یعنی مدل MTV پشتیبانی میکنه که زیر نظر DFS طراحی و توسعه پیدا کرده .
DFS ( Django Software Foundation ) :
یک شرکت مستقل که حق ثبت جنگو رو دارد .

MTV ( model-template-view )
یک مدل طراحی هست .

هدف از جنگو درواقع آسان ساختن سایت های سخت و پیچیده و همچنین سایتهای database driven میباشد .

این فریم ورک بر استفاده مجدد از component های برنامها تمرکز و تاکید دارد که باعث کد کمتر توسعه پذیری سریعتر و راحت تر میشود . به عنوان مثال زمانی که میخوایید برای db خود یک جدول ایجاد کنید کافیه که نام کلاس برنامه خود را هم نام با جدول کرده و فیلدهای آنرا با استفاده از متغیر های آن کلاس تعیین کنید .

در کل این فریم ورک از پایتون استفاده شده چه برای تنظیمات و چه برای data model .

سایتهایی که از این فریم ورک استفاده کردن میتوان به موارد زیر اشاره کرد :

Instagram
Mozilla
Washington times
Nextdoor
البته سایت pinterest هم اوایل از این فریم ورک استفاده میکرد که بعدها به فریم ورک flask تغیر یافت .

برخی از ویژگیها :
Lightweight & standalone web server for testing

Form serialization & validation

Caching framework ( can use several cache methods)

Internal dispacher system

Serialization system ( read xml & json )

Tools for generating google sitemap

Dynamic adminstrative interface

Built-in web app security risk mitigation

🖥 برای آشنایی بیشتر و یادگیری این موضوع به سایت dcdr.ir مراجعه کنید .

@de_coder
ساختار یک پروژه جنگو
Flask vs Django :

فلسک یک framework که اساس زبان آن python و برای ین زبان ساخته شده میباشد که .
کتابخانهایی که این framework به همراه خود دارد و اساس این برنامه را تشکیل میدهد عبارت اند از :
Jinja2
Wekzeug

این framework تنها رقیب framework دیگه یا هم قطار خود به نام django میباشد که این نیز بر اساس python ساخته شده . البته فریم ورک های دیگه نیز هستند اما این تنها رقیب محسوب میشه .

فلسک یک framework سبک و راحت برای استفاده میباشد بر خلاف django .

نکته دیگری که وجود دارد اینکه flask یک فریم ورک آزاد میباشد اما منظور از آزاد این است که به شما آزادی عمل میدهد و شما میتوانید از هر کتابخانه ای ساتفاده کنید و یا از کتابخانه های خود برای پروژتون استفاده کنید .

یکی دیگه از تفاوت ها این است که django یک فریم ورک قوی و بسیار قدیمی تر از flask است یعنی دارای ساختار ویژه خود است و آزادی عملی چندانی ندارد .

تمرکز افرادی که بیشتر به به نتیجه و آخر کار ویا فعالیت خود هست بیستر به سمت django میره چون استقلال به پروژه شما میده اما flsk بیشتر مورد توجه افرادی هست که تمرکز آنها به سمت نمونه اولیه پروژه است اما این به این معنا نیست که کارایی برای پروژهای بزرگ ندارد .

توی django ما شاهد پنل های مستقل و از پیش تعبیه شده هستیم مثل سیستم مدریت سایت و app . اما توی flsk همه اینهارا آنجوری که دلتون میخواد باید طراحی کنید .

توی flask شما میتونید عملکرد بیشتر بروی درخواستها با request ها و response ها داشته باشید و بر اساس میل خود تغیر بدهید .

از لحاظ ساختاری امنیت در django بیشتر هست و دارای بروز رسانیهای متفاوتی هست .

هردو دارای یک ماژول http درون خود هستند که به شما امکان تست پروژتون رو میده ( اما از من میشنوید هیچ موقع روی این ماژول فقط تستهای مربوط به کاردهای سایت رو انجام بدین چیزای ساده و اساسی سایتاما پروژه رو تست نکنید چون وقتی موقع راه اندازی برسه خیلی دردسر بهتون تحمیل میکنه ).

هر دو برای راه اندازی برای دنیای واقعی یا به قول معروف up کرد پروژه نیاز به cgi دارند که تحت عنوان wsgi هست که میتوانید این ماژول رو هم روی apache و هم روی nginx و ... داشته باشید . البته نا گفته نمونه یک مورد دیگه برای راه اندازی پروژه هم هست به نام uwsgi که بر اساس ++C ساخته شده و سرعت بسیار بیشتر و قابل قبولی به شما میده اما راه ندازیش مشکل تر بوده و بیشتر آموزشها نحوه راه اندازی آن بروروی nginx گفتن .

مشکلات و دردسرهای django از فسلک بیشتر این رو میتوانید بر اساس تعداد موضوعات و مشکلات فریم ورک ها توی stackoverflow مشاهده کنید که البته همه این مشکلات دارای جواب درست و کامل بوده .

نکته دیگر اینکه تمام این ویژگی ها وابسته به بزرگی پرژه و یا نوع پروژه شماست مثلا اگر شما قصد دارید که چندین بخش که خود میتوانند به تنهایی یک سایت باشن رو پیاده سازی کنید باید از django استفاده کنید .

آموزش های گفته شده برای این دو فریم ورک بسیار ساده و قابل فهم بوده اما document های flask بر خلاف django ساده و روان میباشد .

مورد بعدی میتوان به چندین پروزه بودن django اشاره کرد . شما اگر میخوایید چندین پروزه رو راه اندازی کنید اما بصورت جدا django عملکر خیلی بهتر و مفیدتری به شما میده

🖥 برای اینکه بتونید بیشتر با flask و django آشنا بشید و بتونید کار با اونهارو یادبگیرید کتابهای مربوط به این framework رو میتوانید از سایت ما به نشانی dcdr.ir دانلود کنید .
@de_coder
Java enterprise edition (JEE) :

این نسخه از جاوا که به آن j2EE هم گفته میشود نمونه و یا مانندی از زبانهای برنامه نویسی سمت سرور بر اساس زبان جاوا میباشد .
این عنوان تحت نظارت و develope شرکت بزرگ oracle بوده که اکنون اوراکل آنرا واگزار و منبع باز کرده و تمام امکانات آن را در java compiler se8 قرار داده تا برنامه نویسان بتوانند استفاده کنند .

این نکته قابل ذکر هست که برای JEE شرکت معروف و محبوب apache کتابخانهایی را برای این نسخه از java ارائه داده( مانند امنیت ) و همچینین یک وب سرور مخصوص این زبان به نام apache tomcat ساخته و توسعه داده . لازم به ذکر است که خود شرکت oracle نیز وب سرور هایی رو هم ساخته مانند glassfish ویا payara که نسخه دیگه ای بر اساس glassfish میباشد وهمچینین میتوان به wildfly ویا weblogic هم اشاره کرد .

جاوا نسخه Enterprise مجموعه ای از افزونها و یا extention ها برای وب سرور ویا distribute computing میباشد . این نسخه از جاوا میتونه در قالب micro services یا بصورت application server ارائه شده باشد که میتواند این موارد را پوشش دهد :
1. امنیت
2. کنترل کردن تراکنشها
3. مقیاس پذیری بسیار بالا نسبت به برنامه
4. همروندی در برنامه
5. مدریت component های برنامه در زمان deploy

همانطور که گفته شده جاوا Enterprise مجموعه ای از API ها میباشد و این API ها هستند که باعث تشکیل JEE شده است.

نمونهایی که میتوان از جاوا استفاده کرد و بسیار مناسب تر میباشد میتوان به موارد زیر اشاره کرد :
1. Ecommerce
2. Accounting
3. Banking


اما اکنون عنوان jEE به عنوان و نسخه منبع باز دیگری به نام jakarta ee تغیر یافته اما هنوز نتوانسته جای خود را در بازار پیدا کند البته این نکته جا نمونه هنوز یکسال نشده که وارد بازار شده . فعلا یک نسخه تست تولید شده .

جهت دانلود کتابهای مربوطه به این نسخه از جاوا میتوانید به بخش کتابخانه سایت dcdr.ir مراجعه فرمایید .

@de_coder
دوستان 7 کتاب جدید به سایت اضافه شد .
Dcdr.ir
@de_coder
با ما صحبت كنيد :
@decodersup
JPA :
به عبارت دیگر java persistence API که همانطور که از اسمش پیداست یک api بر اساس جاوا میباشد که اجازه کار با پایگاه دادهای relational را به شما میدهد .
این api بصورت ذاتی یک نوع کوئری برای خود دارد به نام JPQL .
این نوع query درواقع بجای اینکه بخواد با table بصورت مستقیم ارتباط برقرار کنه میاد با entity object ها ارتباط برقرار میکنه . در سینتکس میاد درواقع sql رو اسمبل میکنه و بعد ارجاع میده .


یا به عبارت دیگر و راحت تر میتوان گفت jPQL برای entity های موجود در داخل یک جدول که در یک دیتابیس رابطه ای وجود دارد جست و جو و عمل میکند.

آخرین نسخه از JPA که اکنون در دسترس همگان میباشد JPA 2.2 است که درسال 2019 برای Jakarta EE 8 منتشر شد .

اما منظور از persistence چیست ؟
منظور از persistence به سه موضوع زیر ختم میشود :
1. خود API در داخل پکیج Javax.persistence وجود دارد .
2. بخاطر نوع کوئری خاص خودش JPQL
3. object / relational metadata

4. مکانیزمی که ساخت object های داخل جاوا را از پردازش برنامه جدا میکند و برنامه به آن ارجاع میدهد. که البته این امکان را میدهد که شما تعیین کنید کدام object ها داخل برنامه باشند یا نباشند .

اما این نکته قابل ذکره که JPA یک framework نیست ولی یکسری مفهوم و مفاهیم است که میتواند توسط ابزارها و یا فریم ورک ها پیاده شود.

مرجع پیاده سازی آن EclipsLink میباشد .
توضیح مختصر :
یک service و یا برنامه منبع بازی میباشد که باعث بوجود آمدن یک framework انعطاف پذیر شده و به توسعه دهندگان جاوا اجازه میدهد تا با data service های مختلف کار کنند مانند db , OXM , EIS .
این برنامه اجازه کار با موارد زیر را میدهد :
1. JPA
2. JAXB java architecture for XML binding
3. JCA java connector architecture
4. SDO service data object

این برنامه بر اساس topLink بوده که محصولی از شرکت Oracle میباشد .

اکنون JPA به نام jakarta persistence شناخته و معرفی میشود .

🖥 برای دانلود کتابهای مربوطه به سایت dcdr.ir مراجعه فرمایید
@de_coder
با ما صحبت كنيد :
@decodersup
باعرض سلام و خسته نباشید خدمت دوستداران و همراهان تیم دیکدر .

دوستان نظراتتون به دست ما میرسید و خوشحالیم که تونستیم نظرات مثبت و همچنین پیشنهادات دوستان را داشته باشیم .

نکته اول اینکه قالب سایت هنوز تو مرحله آزمایش و تست هستش این بدین منظور میباشد که قالب هنوز یکسری مشکلات سمت UI و UX سایت وجود دارد که ما تمام سعی مان را برای رفع این مشکلات قرار داده ایم .

نکته دوم اینکه ما بدلیل محدود بودن فضای کمی که از طرف provider به ما اختصاص داده شده ما نمیتوانی هر کتابی و یا فیلم های آموزشی با حجم زیاد را قرار دهیم ولی تنها کتاب های با کفیت بالا اما با حجم پایین بر روی سایت قرار میدهیم تا دانلود کردن آن نیز برای شما راحت شود.

نکته سوم آنکه فیلم های آموزشی در سایت قرار داده شده ممکن است برای بعضی از دوستان پخش و یا اجرا نشود اما این مشکلی نیست و در اسرع وقت به این مشکل رسیدگی میشود .
هرچند اگر مایل به دیدن این فیلما هستید میتوانید به کانال دوم ما @decodercw مراجعه کرده و فیلم ها را مشاهده کنید .

نکته بعدی اینکه بدلیل پاره ای از مسائل و مشکلات سمت مدیران کانال ، بروز رسانی ها هرچند کم بوده اما سعی بر آن است که بتوانیم مطالب آموزشی و تماما کاربردی بر روی کانال قرار دهیم .

در آخر باید گفت که تمام این مشکلات قابل حل هستند و ما حتما پیگیری خواهیم کرد .
بازم تشکر میکنم از استقبال شما دوستان انشالله بتوانیم جواب این همه محبت شما را بدهیم .

با ما در ارتباط باشید :

Main : @de_coder

🎥 Course : @decodercw
📞 Contact us : @decodersup

🖥 Site : dcdr.ir
چندین کتاب جدید به سایت اضافه شد .
Dcdr.ir

@de_coder