EJB :
یا به عبارت دیگر Enterprise JavaBeans یکی از چندین ApI های جاوا برای ماژولار کردن ساختار یک نرم افزار تجاری یا enterprise software میباشد .
این API سمت سرور فعال میباشد یا به عبارت دیگر server-side به صورت یک component میباشد که باعث EBL بودن یک Application میشود .
Ebl ( encapsulation business logic) :
یک بخشی از برنامه میباشد که قوانین تجاری در دنیای واقعی را encodes میکند ( به زبان دیگر و قابل فهم یک سیستم در آوردن ) که باعث مشخص شدن نحوه ذخیره سازی ، ساخت و تغیر یک data یا به عبارت دیگر عملیات CRUD را انجام میدهد
این API شامل یک web container میباشد که runtime enviroment را برای برنامهای سمت وب بوجود میاورد که شامل :
1. Computer security
2. Java Servlet lifecycle management
3. Transaction processing
Etc.
میباشد .
این API زیر مجموعه ای از JavaEE میباشد .
این API اول توسط IBM ساخته شد و سپس توسط شرکت SUN microsystem خریداری شد و سپس توسط Java community process پیشرفت و توسعه داده شد تا نسخه 3.2 .
وظایف اصلی :
1. Transaction Processing
2. Integrate with Persistence service (JPA )
3. Concurrency Control
4. Event-Driving Programming with JMS and JCA
5. Asynchronous methode invocation
6. Job scheduling
7. Security with JCE and JAAS
8. Naming and Directory services ( JNDI )
9. Interprocess Communication using RMI and Web services
10. Deployment of Software component in Application Server
البته این نکته قابل ذکر میباشد که این API انواع مختلفی دارد و این نوع ها هر کدام شامل موارد دیگر میشود.
همچنین از این API برای Distributed application هم استفاده میشود .
همانطور که گفته شد EJB سمت سرور میباشد این به بدان معنی میباشد که برای اجرا کردن آن شما نیاز به java web servers دارید مانند webLogic ویا glassfish
🖥 برای دانلود کتابهای مربوط به این پست میتوانید به سایت dcdr.ir مراجعه فرمایید
@de_coder
یا به عبارت دیگر Enterprise JavaBeans یکی از چندین ApI های جاوا برای ماژولار کردن ساختار یک نرم افزار تجاری یا enterprise software میباشد .
این API سمت سرور فعال میباشد یا به عبارت دیگر server-side به صورت یک component میباشد که باعث EBL بودن یک Application میشود .
Ebl ( encapsulation business logic) :
یک بخشی از برنامه میباشد که قوانین تجاری در دنیای واقعی را encodes میکند ( به زبان دیگر و قابل فهم یک سیستم در آوردن ) که باعث مشخص شدن نحوه ذخیره سازی ، ساخت و تغیر یک data یا به عبارت دیگر عملیات CRUD را انجام میدهد
این API شامل یک web container میباشد که runtime enviroment را برای برنامهای سمت وب بوجود میاورد که شامل :
1. Computer security
2. Java Servlet lifecycle management
3. Transaction processing
Etc.
میباشد .
این API زیر مجموعه ای از JavaEE میباشد .
این API اول توسط IBM ساخته شد و سپس توسط شرکت SUN microsystem خریداری شد و سپس توسط Java community process پیشرفت و توسعه داده شد تا نسخه 3.2 .
وظایف اصلی :
1. Transaction Processing
2. Integrate with Persistence service (JPA )
3. Concurrency Control
4. Event-Driving Programming with JMS and JCA
5. Asynchronous methode invocation
6. Job scheduling
7. Security with JCE and JAAS
8. Naming and Directory services ( JNDI )
9. Interprocess Communication using RMI and Web services
10. Deployment of Software component in Application Server
البته این نکته قابل ذکر میباشد که این API انواع مختلفی دارد و این نوع ها هر کدام شامل موارد دیگر میشود.
همچنین از این API برای Distributed application هم استفاده میشود .
همانطور که گفته شد EJB سمت سرور میباشد این به بدان معنی میباشد که برای اجرا کردن آن شما نیاز به java web servers دارید مانند webLogic ویا glassfish
🖥 برای دانلود کتابهای مربوط به این پست میتوانید به سایت dcdr.ir مراجعه فرمایید
@de_coder
EJB VS. Spring :
( درباره این دو مورد تو پست های قبلی صحبت کردیم برای شناختشون به پست های بالا مراجعه کنید . )
تفاوت اصلی این دو مورد این است که EJB بصورت معین برای جاوا EE میباشد ولی spring یک فریم ورک بروی javaEE میباشد .
درواقع EJB یک ساختار یا architecture برای برنامه نویسی transactional و component-base . اسپرینگ درواقع یک پشتیبان یا support کننده برای توسعه دهندگان جاوا میباشد که باعث میشود تا توسعه دهندگان بیشتر روی موارد لازم و مورد نیاز برای business تمرکز کنند و خود این فریم ورک تنظیمات لازم و زیر ساخت برنامه را درست میکند.
درباره dependency injection توی EJB شما میتویند دادهای مربوط به EJB برنامه را به JMS هم وارد کنید . منابع JPA در container این API وجود دارد.
در اسپرینگ شما میتوانید lists و properties های خود اسپرینگ استفاده کنید و شما میتوانید منابع JNDI را بروی object مپ کنید .
اسپرینگ 20 ماژول دارد که هر کدام با دیگری کاملا متفاوت است . بصورت منطقی این ماژولها :
Data access/ integration
Web
AOP
Aspects
Intrumentation
Core container
Test
در EJB شما برای دسترسی به EJB beans میتوانید از JSP استفاده کنید . در این موارد JSP را به HTML تبدیل کرده و بعد به مرورگر کاربر ارسال میکند. توی اسپرینگ این نورد توسط ماژول WEB انجام و مدریت میشود .
درواقع EJB از مدل MVC پشتیبانی میکنه که شما هم باید به این صورت کد بزنید اما EJB نیازی به نوشتن SQL نداره بصورت داخلی خودش این موارد رو داره و شما راحت تر هستید.
در EJB توی container ها مدریت beans ها را انجام داده میشود و این beans ها مسئولیت مدریت کردن اتصالات به db را دارند. که بصورت معمول RDBMS ها میباشند. این مورد توی ایپرینگ توسط ماژولهای DATA ACCESS و با integration انجام میشود.
در اسپرینگ ماژول تست از jUnit و testNG نیز پشتیبانی میکند .
در اسپرینگ ماژول data access یا integration از موارد زیر پشتیبانی میکند :
JDBC , JMS , ORM , OXM , ETC
اما در JDBC این قابلیت وجود دارد که شما نیازی به هیچ گونه تنظیمات اولیه ندارید و فقط باید با DB ارتباط برقرار کنید.
🖥 برای دانلود کتابهای این موارد میتوانید به بخش کتابخانه سایت dcdr.ir مراجعه فرمایید .
@de_coder
( درباره این دو مورد تو پست های قبلی صحبت کردیم برای شناختشون به پست های بالا مراجعه کنید . )
تفاوت اصلی این دو مورد این است که EJB بصورت معین برای جاوا EE میباشد ولی spring یک فریم ورک بروی javaEE میباشد .
درواقع EJB یک ساختار یا architecture برای برنامه نویسی transactional و component-base . اسپرینگ درواقع یک پشتیبان یا support کننده برای توسعه دهندگان جاوا میباشد که باعث میشود تا توسعه دهندگان بیشتر روی موارد لازم و مورد نیاز برای business تمرکز کنند و خود این فریم ورک تنظیمات لازم و زیر ساخت برنامه را درست میکند.
درباره dependency injection توی EJB شما میتویند دادهای مربوط به EJB برنامه را به JMS هم وارد کنید . منابع JPA در container این API وجود دارد.
در اسپرینگ شما میتوانید lists و properties های خود اسپرینگ استفاده کنید و شما میتوانید منابع JNDI را بروی object مپ کنید .
اسپرینگ 20 ماژول دارد که هر کدام با دیگری کاملا متفاوت است . بصورت منطقی این ماژولها :
Data access/ integration
Web
AOP
Aspects
Intrumentation
Core container
Test
در EJB شما برای دسترسی به EJB beans میتوانید از JSP استفاده کنید . در این موارد JSP را به HTML تبدیل کرده و بعد به مرورگر کاربر ارسال میکند. توی اسپرینگ این نورد توسط ماژول WEB انجام و مدریت میشود .
درواقع EJB از مدل MVC پشتیبانی میکنه که شما هم باید به این صورت کد بزنید اما EJB نیازی به نوشتن SQL نداره بصورت داخلی خودش این موارد رو داره و شما راحت تر هستید.
در EJB توی container ها مدریت beans ها را انجام داده میشود و این beans ها مسئولیت مدریت کردن اتصالات به db را دارند. که بصورت معمول RDBMS ها میباشند. این مورد توی ایپرینگ توسط ماژولهای DATA ACCESS و با integration انجام میشود.
در اسپرینگ ماژول تست از jUnit و testNG نیز پشتیبانی میکند .
در اسپرینگ ماژول data access یا integration از موارد زیر پشتیبانی میکند :
JDBC , JMS , ORM , OXM , ETC
اما در JDBC این قابلیت وجود دارد که شما نیازی به هیچ گونه تنظیمات اولیه ندارید و فقط باید با DB ارتباط برقرار کنید.
🖥 برای دانلود کتابهای این موارد میتوانید به بخش کتابخانه سایت dcdr.ir مراجعه فرمایید .
@de_coder
De.coder
توي پست بالا اصطلاحاتي مثل IoC و Dependency Injection آورده شده كه شايد براي دوستان نامفهوم و يا جديد باشه
دوست داريد در قالب يه ويدئو آموزشي اين مفاهيم رو يكبار براي هميشه به صورت فني و آكادميك ياد بگيريد ؟
دوست داريد در قالب يه ويدئو آموزشي اين مفاهيم رو يكبار براي هميشه به صورت فني و آكادميك ياد بگيريد ؟
يك قسمت در دوره Design Pattern درباره اين موضوع ضبط خواهد شد و تقديمتون ميشه
Laravel :
یک فریم ورک رایگان و متن باز تحت php میباشد که هدف آن ساخت web app هایی که از مدل mvc استفاده میکنند که بر اساس فریم ورک symfony میباشد .
یکی از مزیتهای این فریم ورک سیستم ماژولار بودن پکیج ها همراه با مدریت وابستگی مشخص و معین که برای استفاده از یک هدف مشخص طراحی شده میباشد. همچنین میتوان به امکانات و راه های مختلفی که برای ارتباط با RDBMS ها به کاربر ارائه میدهد نیز اشاره کرد . همچنین این فریم ورک قابلیت syntactic sugar را به کاربر جهت خوانایی و توانایی توضیحی بیشتر میدهد که این قابلیت در سینتکس های مورد قبول توسط این فریم ورک قابل مشاهده است .
اکنون این فریم ورک تحت لایسنس MIT میباشد .
آخرین نسخه از این فریم ورک به نسخه 6.0 میتوان اشاره کرد اما نسخه 5.8 و 5.5 نیز هنوز به عنوان آخرین و قدیمی ترین نسخه پشتیبانی میشوند.
از قابلیت های دیگر و همچنان بیشمار این فریم ورک میتوان به موارد زیر اشاره کرد :
Query builder
Application Logic
Reverse routing
RestFul controllers
Class auto loading
Blade templating engine
Bundless : provide modular packaging system
Eloquent ORM
Ioc container
Unit testing
Automatic pagination
Homestead vm
View composers
Migration
Database seeding
Etc
برخی از سیستم های داخلی که لاراول آن هارا دارا ویا ساخته است :
Vaper :
یک پلتفرم serverless برای لاور که قدرت گرفته از AWS میباشد. قابلیت CACHE را نیز دارا میباشد.
Forge :
یک پلتفرم برای مدریت سرور و وب اپلیکیشن میباشد.
Envoyer :
یک پروداکت توسط لاراول جهت در دسترس بودن و فعال بودن سایت و سرور میباشد.
Horizon :
یک داشبورد و تنظیمات به صورت Code-Drivern میباشد که باعث مدریت کار های لاراول می شود.
Nova :
یک پنل مدریتی برای لاراول میباشد .
Echo :
یک قابلیت و یا تکنینک در لاراول برای برنامه نویسان سوکت جهت کار با application های بلا درنگ یا real-time میباشدهمچنین به عنوان یکی از قابلیت های آن میتوان به broadcasting اشاره کرد.
Lumen :
یک میکرو سرویس و یا API میباشد جهت سرعت بالاتر وب سایت.
Spark :
جهت کار با دادهای عظیم یا BIG-DATA میباشد.
Socialite :
یک مکانیزم هویت سنجی بر اساس سیستم Oauth میباشد . البته شما میتواتید از سرویسهای facebook و twiter و linkdin و google و github نیز در این سرویس جهت هویت سنجی استفاده کنید.
Telescope :
یک دستار برای لاراول جهت کمک و دیباگ کردن و یا رفع خطای سیستم میباشد.
Etc.
پکیج های آماده استفاده ای که از طریق composer ، توسط لاراول تهیه شده است می توان به موارد زیر اشاره کرد:
Cashier
Ssh
Scheduler
Flysystem
Socialite
اگر میخوایین از قابلیت های مرکزی این فریم سر در بیارین باید به خود php مراجعه کنید.
🖥 برای دانلود کتابهای این عنوان میتوانید به سایت dcdr.ir مراجعه فرمایید.
@de_coder
یک فریم ورک رایگان و متن باز تحت php میباشد که هدف آن ساخت web app هایی که از مدل mvc استفاده میکنند که بر اساس فریم ورک symfony میباشد .
یکی از مزیتهای این فریم ورک سیستم ماژولار بودن پکیج ها همراه با مدریت وابستگی مشخص و معین که برای استفاده از یک هدف مشخص طراحی شده میباشد. همچنین میتوان به امکانات و راه های مختلفی که برای ارتباط با RDBMS ها به کاربر ارائه میدهد نیز اشاره کرد . همچنین این فریم ورک قابلیت syntactic sugar را به کاربر جهت خوانایی و توانایی توضیحی بیشتر میدهد که این قابلیت در سینتکس های مورد قبول توسط این فریم ورک قابل مشاهده است .
اکنون این فریم ورک تحت لایسنس MIT میباشد .
آخرین نسخه از این فریم ورک به نسخه 6.0 میتوان اشاره کرد اما نسخه 5.8 و 5.5 نیز هنوز به عنوان آخرین و قدیمی ترین نسخه پشتیبانی میشوند.
از قابلیت های دیگر و همچنان بیشمار این فریم ورک میتوان به موارد زیر اشاره کرد :
Query builder
Application Logic
Reverse routing
RestFul controllers
Class auto loading
Blade templating engine
Bundless : provide modular packaging system
Eloquent ORM
Ioc container
Unit testing
Automatic pagination
Homestead vm
View composers
Migration
Database seeding
Etc
برخی از سیستم های داخلی که لاراول آن هارا دارا ویا ساخته است :
Vaper :
یک پلتفرم serverless برای لاور که قدرت گرفته از AWS میباشد. قابلیت CACHE را نیز دارا میباشد.
Forge :
یک پلتفرم برای مدریت سرور و وب اپلیکیشن میباشد.
Envoyer :
یک پروداکت توسط لاراول جهت در دسترس بودن و فعال بودن سایت و سرور میباشد.
Horizon :
یک داشبورد و تنظیمات به صورت Code-Drivern میباشد که باعث مدریت کار های لاراول می شود.
Nova :
یک پنل مدریتی برای لاراول میباشد .
Echo :
یک قابلیت و یا تکنینک در لاراول برای برنامه نویسان سوکت جهت کار با application های بلا درنگ یا real-time میباشدهمچنین به عنوان یکی از قابلیت های آن میتوان به broadcasting اشاره کرد.
Lumen :
یک میکرو سرویس و یا API میباشد جهت سرعت بالاتر وب سایت.
Spark :
جهت کار با دادهای عظیم یا BIG-DATA میباشد.
Socialite :
یک مکانیزم هویت سنجی بر اساس سیستم Oauth میباشد . البته شما میتواتید از سرویسهای facebook و twiter و linkdin و google و github نیز در این سرویس جهت هویت سنجی استفاده کنید.
Telescope :
یک دستار برای لاراول جهت کمک و دیباگ کردن و یا رفع خطای سیستم میباشد.
Etc.
پکیج های آماده استفاده ای که از طریق composer ، توسط لاراول تهیه شده است می توان به موارد زیر اشاره کرد:
Cashier
Ssh
Scheduler
Flysystem
Socialite
اگر میخوایین از قابلیت های مرکزی این فریم سر در بیارین باید به خود php مراجعه کنید.
🖥 برای دانلود کتابهای این عنوان میتوانید به سایت dcdr.ir مراجعه فرمایید.
@de_coder
كتاب هاي درسي مون رو اينجا ميگذاريم
@debrary
فيلم هاي آموزشي مون رو اينجا ميگذاريم
@decodercw
سايت مون هم اينه www.dcdr.ir
اگرم خواستي باهامون حرف بزني به آي دي زير پيام بده
@decodersup
@debrary
فيلم هاي آموزشي مون رو اينجا ميگذاريم
@decodercw
سايت مون هم اينه www.dcdr.ir
اگرم خواستي باهامون حرف بزني به آي دي زير پيام بده
@decodersup
تفاوت های اساسی پرتكل هاي tcp/ip با بقیه پروتکلها :
Network Technology independent :
معنی تحت الفظی یعنی مستقل بودن از لحاظ تکنولوژی . اما این فقط از لحاظ تکنولوژی معنی نمیدهد بلکه میتوان این مورد را در مفاهیم این مدل یافت. یکی از موارد اساسی در شبکه های packet این مورد میباشد . این پروتكل بر سرویس های packet سوار است و به همین جهت این پروتكل بستهایی را که ارسال ميكند، میتوان گفت datagram هستند ( به معنی بخشی از اطلاعات در حال انتقال ) . شاید براتون جالب باشه بدونید که این پروتکل یک ویژگی داره به نام قابل اعتماد بودن در ارسال اطلاعات اما این پروتکل و این مدل بر روی یک شبکه غیر قابل اعتماد سروار شده . این پروتکل تنها تعیین میکند که این datagram ها چگونه جابه جا شوند و این موارد هیچ وابستگی به سخت افزار خاصي ندارند.
Universal interconnect :
این بدان معنی میباشد که اجازه میدهد هر سیستم داخل شبکه بصورت دلبخواهی با یک سیستم ديگر ارتباط برقرار کند.
و از این رو موضوعی به اسم آدرس در شبکه به وجود میاد که البته باید بصورت جهانی برای شبکها قابل فهم و قابل شناسایی باشد .
هر datagram شامل یک آدرس مبدا و یک آدرس مقصد میباشد و کار device هاي میان این دو node ( مبدا و مقصد ) فقط کار forward کردن ( ارسال کردن ) آنها است . تنها فرستنده باید آدرس سیستم مقصد را داشته باشد و اطلاعات دیگری نیاز ندارد .
End to End acknowlegement :
این به این معنی میباشد که اگر سیستم مبدا یک datagram و یا packet را جابه جا کرد به جای اینکه به هر سیستمی میرسد یک ack بفرستد وقتی به سیستم مقصد رسید یک ack به سمت مبدا میفرستد . حتی اگر این سیستم ها به شبكه وصل نباشند و یا حضور فیزیکی نداشته باشند .
Application protocol standard:
در این پروتکل استانداردهايي وجود دارد که نحوه دسترسی به یک app و یا یک منبع یا resource را در شبکه دیگر مشخص میکند .
@de_coder
Site : dcdr.ir
Contact : @decodersup
Network Technology independent :
معنی تحت الفظی یعنی مستقل بودن از لحاظ تکنولوژی . اما این فقط از لحاظ تکنولوژی معنی نمیدهد بلکه میتوان این مورد را در مفاهیم این مدل یافت. یکی از موارد اساسی در شبکه های packet این مورد میباشد . این پروتكل بر سرویس های packet سوار است و به همین جهت این پروتكل بستهایی را که ارسال ميكند، میتوان گفت datagram هستند ( به معنی بخشی از اطلاعات در حال انتقال ) . شاید براتون جالب باشه بدونید که این پروتکل یک ویژگی داره به نام قابل اعتماد بودن در ارسال اطلاعات اما این پروتکل و این مدل بر روی یک شبکه غیر قابل اعتماد سروار شده . این پروتکل تنها تعیین میکند که این datagram ها چگونه جابه جا شوند و این موارد هیچ وابستگی به سخت افزار خاصي ندارند.
Universal interconnect :
این بدان معنی میباشد که اجازه میدهد هر سیستم داخل شبکه بصورت دلبخواهی با یک سیستم ديگر ارتباط برقرار کند.
و از این رو موضوعی به اسم آدرس در شبکه به وجود میاد که البته باید بصورت جهانی برای شبکها قابل فهم و قابل شناسایی باشد .
هر datagram شامل یک آدرس مبدا و یک آدرس مقصد میباشد و کار device هاي میان این دو node ( مبدا و مقصد ) فقط کار forward کردن ( ارسال کردن ) آنها است . تنها فرستنده باید آدرس سیستم مقصد را داشته باشد و اطلاعات دیگری نیاز ندارد .
End to End acknowlegement :
این به این معنی میباشد که اگر سیستم مبدا یک datagram و یا packet را جابه جا کرد به جای اینکه به هر سیستمی میرسد یک ack بفرستد وقتی به سیستم مقصد رسید یک ack به سمت مبدا میفرستد . حتی اگر این سیستم ها به شبكه وصل نباشند و یا حضور فیزیکی نداشته باشند .
Application protocol standard:
در این پروتکل استانداردهايي وجود دارد که نحوه دسترسی به یک app و یا یک منبع یا resource را در شبکه دیگر مشخص میکند .
@de_coder
Site : dcdr.ir
Contact : @decodersup
گزارش موسسه udemy درباره پر کاربردترین و تکنولوژیهای با سرعت پیشرفت بالا .
با تشکر از دوستانی که این مورد رو اطلاع دادند.
@de_coder
Site : dcdr.ir
Contact : @decodersup
با تشکر از دوستانی که این مورد رو اطلاع دادند.
@de_coder
Site : dcdr.ir
Contact : @decodersup
Perl :
پرل یک زبان برنامه نویسی یا اسکریپت نویسی با ویژکیهای زیر میباشد :
1. High-level
2. General-purpose (UNIX)
3. Interpreterd
4. Dynamic programming lang
از سال 2000 تا 2019 این عنوان به perl 6 تغیر یافت که درسال 2019 به صورت رسمی به عنوان زبان RAKU نیز معرفی شد .
در سال 1987 این زبان به منظور پردازش گزارشات برای راحتر شدن کار سیستم های یونیکس به وجود آمده بود . اما بعد از سالها دست نخردن به کتابخانها و تغیر دادن این زبان به دو قسمت تقسیم شد و از هر کدام از قسمت ها یک زبان متفاوت و کاملا مستقل به وحود آمد.
قابلیتهای این زبان از زبانهای دیگری همچون :
C, SH, AWK, SED
گرفته شده است . البته در بعضی منابع از زبانهای LISP و BASIC هم یاد شده .
اما ویژگی اصلی این زبان که در نوع خودش منحصر به فرد است و توانسته خود را به خوبی نشان دهد در ضمینه پردازش متنها یا TEXT processing میباشد . تغیر دادن فایلهای text را بسیار ساده کرده بدون محدودیت هایی مثل اندازه data یا طول data .
درسال 2005 پرل 5 بسیار محبوب شد که باعث شد تا با آن cgi scripting هم انجام دهند که به دلیل وجود regx و همچنین string parsing میباشد . ( درباره parsing پستهای قبلی صحبت شده بود ).
اما رشد پرل 5 متوقف نشد و بعد ها فعالیتهایی نظیر مدریت سیستم یا sysadmin و برنامه نویسی شبکه و یا bioinformatic و بسیاری دیگر نیز با آن انجام میدادند.
از این رو به آن لقب :
Swiss Army chainsaw of scripting
نیز دادند .
نا گفته نماند اوایل اینترنت را با این ربان میساختند.
جالبه که بدونید عکس شتر که بعنوان نمادی برای این زبان میباشد بصورت غیر رسمی به این عنوان توسط orelly داده شده که از اون موقع به بعد به آن camel book نیز میگفتند.
حتی یک زمانی از این نماد بعنوان نمادی برای هکرا استفاده میشد ( البته به هکرا بر نخوره! ).
اما نماد اصلی آن پیاز میباشد .
پروژهایی که از این زبان استفاده شده :
cPanel, slash, Twiki
سایتایی با ترافیک بسیار بالا :
IMDB, LiveJournal, DuckDuckGo, Princeline
این زبان بصورت extensively به عنوان یک زبان برنامه نویسی سیستمی در debian به عنوان GNU استفاده شده.
مشکلی که این زبان و هر زبانی که بصورت مفسری میباشد این است که سرعت ویا efficient نیستند
@de_coder
Site : dcdr.ir
Contact : @decodersup
پرل یک زبان برنامه نویسی یا اسکریپت نویسی با ویژکیهای زیر میباشد :
1. High-level
2. General-purpose (UNIX)
3. Interpreterd
4. Dynamic programming lang
از سال 2000 تا 2019 این عنوان به perl 6 تغیر یافت که درسال 2019 به صورت رسمی به عنوان زبان RAKU نیز معرفی شد .
در سال 1987 این زبان به منظور پردازش گزارشات برای راحتر شدن کار سیستم های یونیکس به وجود آمده بود . اما بعد از سالها دست نخردن به کتابخانها و تغیر دادن این زبان به دو قسمت تقسیم شد و از هر کدام از قسمت ها یک زبان متفاوت و کاملا مستقل به وحود آمد.
قابلیتهای این زبان از زبانهای دیگری همچون :
C, SH, AWK, SED
گرفته شده است . البته در بعضی منابع از زبانهای LISP و BASIC هم یاد شده .
اما ویژگی اصلی این زبان که در نوع خودش منحصر به فرد است و توانسته خود را به خوبی نشان دهد در ضمینه پردازش متنها یا TEXT processing میباشد . تغیر دادن فایلهای text را بسیار ساده کرده بدون محدودیت هایی مثل اندازه data یا طول data .
درسال 2005 پرل 5 بسیار محبوب شد که باعث شد تا با آن cgi scripting هم انجام دهند که به دلیل وجود regx و همچنین string parsing میباشد . ( درباره parsing پستهای قبلی صحبت شده بود ).
اما رشد پرل 5 متوقف نشد و بعد ها فعالیتهایی نظیر مدریت سیستم یا sysadmin و برنامه نویسی شبکه و یا bioinformatic و بسیاری دیگر نیز با آن انجام میدادند.
از این رو به آن لقب :
Swiss Army chainsaw of scripting
نیز دادند .
نا گفته نماند اوایل اینترنت را با این ربان میساختند.
جالبه که بدونید عکس شتر که بعنوان نمادی برای این زبان میباشد بصورت غیر رسمی به این عنوان توسط orelly داده شده که از اون موقع به بعد به آن camel book نیز میگفتند.
حتی یک زمانی از این نماد بعنوان نمادی برای هکرا استفاده میشد ( البته به هکرا بر نخوره! ).
اما نماد اصلی آن پیاز میباشد .
پروژهایی که از این زبان استفاده شده :
cPanel, slash, Twiki
سایتایی با ترافیک بسیار بالا :
IMDB, LiveJournal, DuckDuckGo, Princeline
این زبان بصورت extensively به عنوان یک زبان برنامه نویسی سیستمی در debian به عنوان GNU استفاده شده.
مشکلی که این زبان و هر زبانی که بصورت مفسری میباشد این است که سرعت ویا efficient نیستند
@de_coder
Site : dcdr.ir
Contact : @decodersup
De.coder
https://www.guru99.com/perl-tutorials.html
یکی از سایتایی که میتونه به شما از صفر کمک کنه و شمارو آشنا کنه با زبان پرل این سایت هستش