زبانهای برنامه نویسی
8 subscribers
3 photos
3 files
18 links
توسعه صنعت آراد صدرا
Download Telegram
معماری های MVC, MVVM, MVP و MOVE

معماری MVC
ترکیب model, view و controller که یک module را ایجاد می‌کند طراحی MVC را ایجاد می‌کند. Model لایه data را می سازد. هرچیزی که مرتبط به اطلاعات ذخیره شونده هست باید از این لایه بگزرد. View لایه‌ایست که کاربر از طریق آنdata را می‌بیند و Controller چسب بین این دو لایه خواهد بود.
در این طراحی هر نوع عملگری با استفاده از کارکردش در جای مناسبش قرار می گیرد.

معماری MVVM

طراحی MVVM اولین بار توسط microsoft ارایه شد. در ساختار این طراحی Model و View تفاوتی با MVC ندارد. VM یا ViewModel همچون Controller لایه نازکیست بین Model و View اما تفاوت هایش عبارت است از:

ارتباط دو‌طرفه با View:که ViewModel ارایه کننده View است. یعنی هر فیلد در ViewModel بیشتر برابر با View است و به همین علت از Model دورتر است.هر View مستقیماً به یک ViewModel bind می‌شود و در نتیجه تغییرات مربوط به View به صورت لحظه‌ای درViewModel دیده می‌شود و از طرفی تغییرات برعکس هم باعث render مجدد View می شود.
معمولاً برای هر View فقط یک ViewModel وجود دارد. این ارتباط یک به N می باشد.
و Model و View فقط از طریق ViewModel ارتباط دارند.

معماری MVP
این طراحی مشتق شده از MVC است و کاملاً شبیه آن عمل می‌کند فقط لایه Presenter کمی شبیه ViewModel عمل می کند.
تفاوتی که با MVVM دارد در این است که در این روش بر عکس MVVM ارتباط بین Presenter و View به صورت یک به یک می باشد.

معماری MOVE
در این طراحی که شباهت زیادی با MVP دارد تفاوتی که وجود دارد Operation جای Presenter گرفته است. و از طرفی Model با استفاده از Event می‌تواند View را دوباره Render کند. یعنی دیگر نیازی نیست که Model به لایه ارتباطی بگوید که فلان data ی من عوض شده در عوض به view می گویید.

https://telegram.me/programminglanguage
مفهوم Reflection در جاوا

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

کاربرد اصلی Reflection برای ساختن فریم ورک ها است و همچنین ابزاری قدرتمند برای نوشتن برنامه هایی است که می توانند در زمان اجرا تصمیماتی را بگیرند.

یک مثال می زنم: برای اینکه در جاوا از یک کلاس شئ بسازید حتما باید نام آن را بدانید و آن کلاس نیز در classpath برنامه شما قرار داشته باشد و سپس با کد زیر یک شئ از آن بسازید:

MyClass obj = new MyClass();

حال می توانید متد doSomething را از این کلاس فراخوانی کنید. حالا می خواهیم یک برنامه بنویسیم که نقش یک container را دارد، بدین صورت که در زمان اجرا کلاس های مختلفی به آن داده می شود و آن برنامه باید متد doSomething آن کلاس ها را فراخوانی کند. اینجا است که Reflection بکار می آید چون در زمان کد نویسی ما نمی دانیم نام آن کلاس ها چیست و همچنین آن کلاس ها هنوز بوجود نیامده اند بنابراین در classpath برنامه نیز قرار ندارند.

برای قرار دادن یک کلاس در classpath برنامه از قابلیت Dynamic Class Loading در Reflection استفاده می کنیم و سپس با استفاده از Reflection یک شئ از کلاس های جدید در زمان اجرا می سازیم:

Constructor constructor = MyObject.class.getConstructor(String.class);
MyObject myObject = (MyObject) constructor.newInstance("constructor-arg1");
و در نهایت هم با استفاده از Reflection لیست متد های کلاس را بدست می آوریم و متد doSomething را از بین آنها پیدا کرده و فراخوانی می کنیم:

Method[] methods = MyObject.class.getMethods();

for(Method method : methods){
// condition
System.out.println("method = " + method.getName());
}

https://telegram.me/programminglanguage
اخیراً روشهای جدید Captcha مبتنی بر تصویر ارائه شده اند که عبور از آنها برای ما انسانها ساده تر و برای رایانه ها غیرممکن شده است. در یکی از این روشها از قدرت تشخیص انسانها در تمییز اجسام از یکدیگر در حالت سه بعدی و دو بعدی و همچنین در زوایای مختلف استفاده می شود. روش دیگر بر تشخیص یک تصویر متفاوت از بین چندین تصویر مشابه استوار است و شکستن آن برای رایانه های فعلی غیرممکن می باشد. روشی که در بیشتر وب سایتها برای جداسازی ورودیهایی که کامپیوترها تولید کرده اند از ورودیهای انسانی به کار می رود، Captcha یا Completed Automated Public Turing نام دارد. در این روشها، معمولاً ترکیبی از الفبا، اعداد و کاراکترهای دیگر را تولید می کنند به طوری که یک انسان بتواند آنها را تشخیص دهد، ولی شناسایی اجزای آن برای رایانه ها مشکل باشد. همان طور که رباتهای کامپیوتری تولید کننده ورودیها هوشمندتر می شوند، روشهای Captcha نیز آزاردهنده تر می شوند به طوری که عبور از برخی از آنها برای ما انسانها نیز دشوار می نماید. به همین دلیل متخصصان این قضیه به دنبال روشهایی هستند که استفاده از آنها برای انسانها ساده تر و برای کامپیوترها تقریباً غیر ممکن باشد. یکی از روشهای جایگزین، استفاده از عکسهای سه بعدی در اینگونه تستها است که تشخیص آنها برای انسانها ساده بوده و در حال حاضر تکنولوژی شکستن آن برای رایانه ها موجود نمی باشد. در این روش که 3D Captcha نام دارد، از قدرت تشخیص انسانها برای تمییز اجسام سه بعدی در زوایای مختلف استفاده می شود.
ایده دیگری که پیشنهاد می شود، استفاده از تصاویر در اینگونه الگوریتمها است. در همین راستا روشی به نام Captcha the Dog ابداع شده که در وب سایتی با همین نام ارائه شده است. ایده اصلی در این روش کلیک بر روی تصویری است که با بقیه متفاوت است. در اینجا منظور کلیک بر روی تصویر سگ در بین هشت تصویر گربه بر روی یک صفحه 3×3 است. در این روش هر بار جای سگ در ردیفها و ستونهای مختلف عوض می شود. در صورتی که کاربر یک بار هم اشتباه کند کل پروسه از اول آغاز می گردد. زمانی که کاربر به تعداد کافی بر روی تصویر درست کلیک کند، آنگاه کل صفحه شامل تصاویر گربه خواهد شد و به این ترتیب فرد از تست با موفقیت عبور می کند.
در حال حاضر تمییز این تصاویر از یکدیگر برای رایانه ها غیر ممکن است و همچنین انتخاب تصادفی و درست تصاویر در دفعات مختلف محال می باشد. به نظر می رسد کم کم روشهای مبتنی بر متن جای خود را به روشهای مبتنی بر تصویر بدهند.

https://telegram.me/programminglanguage
جهت ارائه پیشنهادات خود به
@mjfotovat
پیام بدهید.
نام کتاب: مقاله پردازش تصویر اثرانگشت در فناوری بیومتریک
نویسنده: زهرا عبدالله پور
تعداد صفحات:35
فرمت کتاب: PDF
زبان کتاب: فارسی

https://telegram.me/programminglanguage
چهارچوب یا زبان برنامه نویسی؟
در دهه 1980، چالش اصلی در یادگیری برنامه‌نویسی در ارتباط با انتخاب بهترین زبان برنامه‌نویسی ممکن همچون سی، پاسکال، لیسپ یا فرترن بود. برنامه‌نویسان زمان زیادی صرف می‌کردند تا توضیح دهند دقیقاً چرا راه ویژه و انتخابی آن‌ها در به‌کارگیری if-then-else متناسب با درخواست رییس‌ آن‌ها است. امروزه این مبارزه شکل دیگری به خود گرفته و در ارتباط با ترکیب نحوی و ساختاری است که به‌مراتب بزرگ‌تر از گذشته شده است. به‌‌ دلیل این‌که جهان در حال حرکت به سوی یک هم‌گرایی در ارتباط با عرضه چند استاندارد ساده قرار دارد. امروزه تفاوت بین سمیکالن‌ها، براکت‌‌ها و این موارد جزیی در زبان‌های سی، جاوا و جاوااسکریپت محسوس نیست.
ما هنوز هم بحث‌های جالبی در ارتباط با استفاده از آن‌ها یا این‌که آیا باید یک براکت بسته شود یا خیر وجود دارد. اما به‌دلیل وجود خودکارسازی مشکلاتی این چنینی به‌طور خودکار برطرف می‌شوند. اگر تمایل ندارید از یک نوع داده خاص استفاده کنید، این موضوع فرصت خوبی در اختیار کامپیوتر قرار می‌دهد تا دقیقاً نوع داده‌ای مورد نیاز شما را حدس بزند. امروزه فعالیت‌های جالبی در ارتباط با چهارچوب‌ها در جریان است. اگر از استادی در دانشگاه جان هاپکینز در ارتباط با تدریس یک درس جدید بپرسید، چهارچوب‌ها از تسلط مطلق برخوردار هستند. آیا Angular نسبت به Enber بهتر است یا Node.Js از هر دو آن‌ها بهتر است؟ در گذشته مباحث مربوط به معماری و کشف معماری‌‌های قدرتمند برای مهم‌ترین بسته‌های نرم‌افزاری که زیربنای اینترنت را تشکیل می‌دادند، در جریان بود. مباحثی این چنینی در گذشته بازار گرمی داشتند. ماحصل این مباحث و وجود کلاس‌های مختلف زمینه‌ساز به وجود آمدن قدرتمندترین بسته‌های نرم‌افزاری شد که امروزه اینترنت بر مبنای آن کار می‌کند. در عصر حاضر چهارچوب‌ها، زبان‌های برنامه‌نویسی جدیدی هستند. آن‌ها مکانی هستند که می‌توانید، جدیدترین ایده‌ها، فلسفه‌ها و کدنویسی‌های مدرن را در آن‌ها مشاهده کنید. هرچند بعضی از آن‌ها چندان مورد توجه نیستند، اما تعداد دیگری در حال تبدیل شدن به اجزای اساسی برنامه‌نویسی هستند. چهارچوب‌ها این روزها بازار بسیار داغ‌تری نسبت به‌ ‌زبان‌های برنامه‌نویسی دارند.

https://telegram.me/programminglanguage
مهم‌ترین قابلیت‌های SQL Server 2016

قابلیت Always Encrypted
امنیت داده‌ها بالاترین اولویت برنامه‌های مهم و حیاتی به شمار می‌رود. SQL Server به عنوان یک بانک‌اطلاعاتی سازمانی که در طول شش سال گذشته کمترین آسیب‌پذیری‌های امنیتی را تجربه کرده است، در این زمینه حساس است. اما برای کمک به مصرف‌کنندگان برای افزایش امنیت داده‌ها وقتی که در حال کار با این بانک‌اطلاعاتی در حالت پیش‌فرض SQL Server یا در حالت ابری هستند، Always Encrypted طراحی شده است. با استفاده از این فناوری که ماحصل فعالیت‌های انجام شده از سوی تیم تحقیقاتی مایکروسافت است، SQL Server این توانایی را دارد تا همه عملیات خود را روی داده‌های رمزنگاری شده به بهترین شیوه انجام دهد. کلید مورد استفاده در رمزنگاری همراه با برنامه‌ای که مشتری در یک محیط قابل اعتماد از آن استفاده می‌کند، قرار می‌گیرد. رمزنگاری و رمزگشایی داده‌ها به صورت شفاف درون این برنامه انجام می‌شود که در نتیجه تغییرات را در برنامه‌های موجود به حداقل می‌رساند.

قابلیت Stretch Database
در کنفرانس Ignite، مایکروسافت درباره مزایای بزرگ کلاود با سناریوهای هیربدی جدیدی که شامل بانک‌های اطلاعاتی کششی است به بیان دیدگاه‌های خود پرداخت. آن‌چنان‌که هسته جداول تراکنشی، به لحاظ اندازه در حال بزرگ شدن است، ممکن است نیازمند آرشیو کردن داده‌ها بر مبنای تاریخ برای کاهش هزینه و افزایش کارایی باشید. این فناوری جالب به شما اجازه می‌دهد، به طور پویا تراکنش‌های داده‌ای را به Microsoft Azure وارد کنید. در نتیجه عملیات مورد نیاز روی داده‌های همیشه در دسترس و قابل استفاده بوده و مهم نیست چه اندازه‌ای داشته باشند. این فناوری به شما اجازه می‌دهد با کمترین هزینه از Azure استفاده کنید. همچنین از ترکیب Always Encrypted و Stretch Database برای بسط دادن داده‌های خود در یک شیوه امن‌تر و با آرامش خیال خاطر می‌توانید استفاده کنید.

قابلیت Real-time Operational Analytics & In-Memory OLTP
برای اولین بار SQL Server در زمینه فناوری‌های در حافظه پیشرو خواهد بود، به طوری‌که مصرف‌کنندگان از مزیت‌های ترکیب بلادرنگ تجزیه و تحلیل‌های قابل استفاده با سرعت بخشیدن به عملکرد تراکنش‌ها که برای اولین بار توسط مایکروسافت عرضه شده است، بهره خواهند برد. In-Memory OLTP به مصرف‌کنندگان اجازه می‌دهد که نزدیک به 30 برابر سریع‌تر از سیستم‌هایی که بر پایه دیسک کار می‌کنند، باشند. یک بانک‌اطلاعاتی که از حافظه اصلی سیستم به جای هارددیسک برای ذخیره‌سازی داده‌ها استفاده می‌کند، از سرعت بیشتری برخوردار است. بانک‌های اطلاعاتی In-Memory یا به‌اختصار IMDB به طور متناوب در محیط‌هایی با حجم بالا که زمان پاسخ‌گویی در آن‌ها مهم است مورد استفاده قرار می‌گیرند. در این بانک‌های‌اطلاعاتی به دلیل به‌کارگیری حافظه سیستم برای ذخیره‌سازی، زمان دسترسی و درخواست‌های بانک‌اطلاعاتی به طرز کاملا قابل محسوسی سریع‌تر هستند. شما اکنون می‌توانید از این فناوری تطبیق یافته برای کارایی تراکنش‌ها روی تعداد قابل توجهی از برنامه‌ها استفاده کرده و همچنین از مزایایی همزمانی افزایشی بهره ببرید. با این پیشرفت‌ها کاربران ویژگی‌های منحصر به فردی همچون ذخیره‌سازی ستون‌ها در حافظه را تجربه خواهند کرد که 100 برابر محاوره‌ها را سریع‌تر کرده، تأخیرهای به وجود آمده در پاسخ‌دهی همزمان را کاهش داده و امکان تجزیه و تحلیل‌های بلادرنگ را فراهم می‌کند.
قابلیت Built-in Advanced Analytics, PolyBase and Mobile BI
برای درک دقیق‌تر داده‌ها، SQL Server 2016 محدوده پردازش تراکنش‌ها، انبار داده‌ها و اطلاعات تجارت‌ها برای تجزیه و تحلیل‌های پیشرفته را از طریق فناوری عرض شده توسط Revolution Analytics توسعه داده است. (مایکروسافت 23 ژانویه سال جاری میلادی اعلام کرد، Revolution Analytics را خریداری کرده است. شرکتی که محصولات و سرویس‌هایی پیرامون زبان برنامه‌نویسی R عرضه می‌کند که یکی از ارکان اصلی توسعه تجزیه و تحلیل‌ داده‌های حجیم است.) در نتیجه نه تنها تجزیه و تحلیل‌های پیشرفته بیشتر از گذشته در دسترس خواهند بود، بلکه افزایش کارایی در زمان تجزیه و تحلیل‌ داده‌ها و قابلیت تحلیل پیشرفته در SQL Server با به کارگیری مستقیم الگوریتم‌های پردازش تحلیلی R که روی SQL Server اجرا می‌شوند به همراه خواهد آمد. همچنین، Microsoft Azure Marketplace به شما این توانایی را می‌دهد تا بهره‌وری و کارایی کتابخانه تجزیه و تحلیلی خود را افزایش دهید. علاوه بر این، PolyBase نیز به SQL Server وارد شد تا قدرت استخراج و مدیریت روی داده‌های بدون ساختار و دارای ساختار را با استفاده از مهارت‌هایی که کاربران در T-SQL دارند افزایش دهد. با این موج جدید، فهم سریعتری از مجازی‌سازی قدرتمند روی بیشتر دستگاه‌ها که شامل برنامه‌های همراه روی ویندوز، iOS و آندروید هستند را به دست خواهید آورد. Mobile BI بینش دقیق‌تر تجاری را برای داده‌های پیش‌فرض از طریق مجازی‌سازی قدرتمند روی دستگاه‌های موبایل که مجهز به ویندوز، آندروید و iOS هستند و برنامه‌های محلی خاص خود را دارند، فراهم می‌کند. Enhanced Reporting Services نیز گزارش‌های مدرنی را با مجازی‌سازی قدرتمند فراهم می‌کند.

https://telegram.me/programminglanguage
Forwarded from اوراکل و هوش تجاری
معماری RAC
@OracleBI