یوشا

دست نوشته ها و تجربیات شخصی

یوشا

دست نوشته ها و تجربیات شخصی

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

۳۱ مطلب با موضوع «نرم افزار :: برنامه نویسی :: Java» ثبت شده است

دسترسی به GPU از طریق جاوا، باعث افزایش توان و قدرت قابل‌ توجهی در برنامه می‌شود. در این مقاله نحوه‌ی کار GPU و نحوه‌ی دسترسی به GPU از طریق جاوا را توضیح میدهم.


ظاهرا برنامه‌نویسی GPU، مانند یک دنیای مجزا از برنامه‌نویسی جاواست... این موضوع عجیب نیست، چرا که اکثر منابع مورد استفاده و کاربردی برای جاوا، برای GPUها قابل‌اجرا نیستند!
برای اینکه به موضوع اصلی برسیم، کمی در خصوص معماری و ساختار GPU، به همراه تاریخچه‌ی مختصری از آن را توضیح میدهم، که پرداختن به موضوع برنامه‌نویسی سخت‌افزار را آسان‌تر می‌کند. وقتی توضیح دادم که چگونه محاسبات GPU از محاسبات CPU متفاوت است، نشان خواهم داد که چگونه از GPUها در دنیای جاوا استفاده کنیم. در نهایت، فریم ورک و کتابخانه‌های معروف و دردسترس برای نوشتن کد جاوا و اجرای آن در GPUها را شرح خواهم داد و نمونه‌هایی از کدنویسی را ارائه خواهم کرد.

 

 فهرست/مندرجات
    • مقدمه
    • اجرای برنامه‌ها بر روی GPU
    • ظهور GPGPU
    • OpenCL و Java
    • CUDA و Java
    • ماندن در بالای کد low-level
    • نتیجه‌گیری

 

۰ نظر ۰۰/۰۳/۰۸
یوشا آل ایوب
۰ نظر ۰۰/۰۱/۱۴
یوشا آل ایوب
  • هر قطعه کد تست باید کوتاه، قابل فهم و خوانا باشه.
  • کدهای تست باید قطعه قطعه و به واحدهای مستقل از هم تقسیم بشن.
  • کدهای تست باید مستقل از محیط اجرایی باشن و وابستگی به platform نداشته باشن.
  • بهتره شیوه اجرای کدهای تست بسادگی و توسط یک دستور انجام بشه.
  • امکان گزارش گیری Test code coverage باید فراهم باشه.
  • اجرای تست case ها از پایین ترین سطح(Unit) به بالاترین سطح(E2E) باید باشه.
  • تست case هارو توسط الگوی AAA بنویسید.
  • در کدهای تست باید از نقل/انتقال اطلاعات حجیم خودداری کرد تا پروسه تست بسرعت انجام بشه.
  • کدهای تست باید بروز باشن و با هر تغییر جدی روی کدهای اصلی باید تغییر کنند.
  • حجم کل کدهای تست تولید شده معمولاً باید برابر یا بیشتر از حجم کدهای اصلی باشه. (یعنی برای همه موارد تست نوشته شده باشه)
  • کدهای تست باید در همان روزی که کدهای اصلی پروژه نوشته میشن تولید بشن. (به روزهای آینده موکول نشه)
  • تست case ها باید کدها، متدها و امکانات پروژه رو به سخت ترین شکل به چالش بکشن.
  • از test double ها استفاده مجدد کنید.
  • تا حد امکان از تست کردن محتوای private کلاس ها و Private API ها پرهیز کنید. (بواسطه کدهای public تست blackbox انجام بدید یا CUT رو redesign کنید)
  • هنگام نوشتن تست case تا حد امکان از بکار بردن دستورات شرطی if/else/switch... پرهیز کنید.
  • بهتره کدهای تست به خارج از محدوده پروژه dependency نداشته باشن.
  • بهتره نام فایل تست به کلمه Test ختم بشه. مثل EmailTest, UtilityTest, DatabaseTest
  • بهتره نام توابع/متدهای داخل فایل تست با کلمه test شروع بشن. مثل test_if_email_is_valid یا testIsEmailValid

 

نکته: وظیفه نوشتن کدهای تست برای Unit Testing بعهده فرد برنامه نویس هستش نه فرد Tester. زیرا:

- بدلیل حفظ مالکیت کدها/پروژه، Tester نباید به سورس پروژه دسترسی داشته باشه.

- بدلیل مسایل امنیتی و کاهش تهدیدها، Tester نباید به داخل کدها و مکانیزم سیستم دسترسی داشته باشه.

- همچنین Tester قادر نیست به همه ابزارها، سبکها و زبانهای مختلفی که در پروژه استفاده شده مسلط بشه و test case طراحی کنه.

- تنها برنامه نویس هستش به کدهایی که پیاده سازی کرده مسلطه و test case رو در کمترین زمان با بالاترین کیفیت تولید میکنه.

۰ نظر ۹۹/۰۷/۱۰
یوشا آل ایوب

مقالات مرتبط:

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

 

1- حتاالمکان از کتابخانه های template engine برای کدنویسی لایه View/UI وب اپلیکیشن استفاده کنید و نه کدنویسی inline/mixed.

 

2- برای کاهش مصرف پهنای باند و افزایش سرعت سایت، همیشه فایلهای CSS, JavaScript, HTML رو minify و lint کنید:

CSS:

https://github.com/purifycss/purifycss

https://cssnano.co/guides/getting-started

https://github.com/ben-eb/cssnano-cli

https://github.com/css/csso-cli

https://github.com/uncss/uncss

JS:

https://github.com/nolanlawson/optimize-js

 

3- بطور منظم و ماهیانه پهنای باند وبسایت/سرور رو چک کنید.

 

4- یک سیستم اسکنر پیاده کنید که نوع دسترسی و زمان تغییر فایلها و دایرکتوری های کل سایت رو اسکن و به شما گزارش کنه.

 

5- از استفاده بیش از حد کوکی و ذخیره اطلاعات حساس/نمایشی  در داخلشون خودداری کنید.

۰ نظر ۹۹/۰۴/۲۵
یوشا آل ایوب

 

Functionality test, Performance/Speed test, User experience test, Compatibility test, Security test

 

نکته: هر 5 نوع تست بالا رو میشه با 2 روش manual و automatic و در 5 سطح/لایه مختلف انجام داد:

Unit Test, Integration Test, Functional/Module Test. System/E2E Test, [User] Acceptance Test

۰ نظر ۹۹/۰۲/۱۵
یوشا آل ایوب

 

دقیقتر:

 

 

دقیقتر:

 

mvc چیست، ام وی سی چیست، ساختار mvc

منبع: https://blog.glyphobet.net/essay/153/

۰ نظر ۹۸/۱۲/۰۶
یوشا آل ایوب

 

۰ نظر ۹۸/۱۱/۱۲
یوشا آل ایوب

1. Package Design Checklist

1.1. General

  • 1.1.1. Favor placing API and implementation into separate packages [explain]
  • 1.1.2. Favor placing APIs into high-level packages and implementation into lower-level packages [explain]
  • 1.1.3. Consider breaking up large APIs into several packages [explain]
  • 1.1.4. Consider putting API and implementation packages into separate Java archives [explain]
  • 1.1.5. Avoid (minimize) internal dependencies on implementation classes in APIs [explain]
  • 1.1.6. Avoid unnecessary API fragmentation [explain]
  • 1.1.7. Do not place public implementation classes in the API package [explain]
  • 1.1.8. Do not create dependencies between callers and implementation classes [explain]
  • 1.1.9. Do not place unrelated APIs into the same package [explain]
  • 1.1.10. Do not place API and SPI into the same package [explain]
  • 1.1.11. Do not move or rename the package of an already released public API [explain]

1.2. Naming

  • 1.2.1. Start package names with the company’s official root namespace [explain]
  • 1.2.2. Use a stable product or product family name at the second level of the package name [explain]
  • 1.2.3. Use the name of the API as the final part of the package name [explain]
  • 1.2.4. Consider marking implementation-only packages by including “internal” in the package name [explain]
  • 1.2.5. Avoid composite names [explain]
  • 1.2.6. Avoid using the same name for both package and class inside the package [explain]
  • 1.2.7. Avoid using “api” in package names [explain]
  • 1.2.8. Do not use marketing, project, organizational unit or geographic location names [explain]
  • 1.2.9. Do not use uppercase characters in package names [explain]
۰ نظر ۹۸/۱۰/۰۹
یوشا آل ایوب

مقالات مرتبط:

#2 - نکاتی برای افزایش امنیت وبسایت

 

 

1- مکانیزم و شیوه کار پروتوکل HTTP رو کامل فرا بگیرید.

 

2- همیشه کتابخانه ها و فریم ورکهای استفاده شده در وب اپلیکیشن رو بروز نگه دارید.

 

3- جهت جلوگیری از click-jacking مقدار هدر X-Frame-Options رو DENY قرار بدید:

Apache httpd.conf:

Header always append X-Frame-Options DENY


Apache .htaccess:

Header append X-FRAME-OPTIONS "DENY"


Nginx:

add_header X-Frame-Options "DENY";


PHP:

header('X-Frame-Options: DENY');

 

4- بصورت هفتگی یا ماهیانه کل سایت رو توسط نرم افزارها و سایتهای اسکنر امنیتی چک کنید:

https://observatory.mozilla.org

https://securityheaders.com

https://urlvoid.com

https://virustotal.com
https://immuniweb.com/websec
https://detectify.com
http://amn.bayan.ir
https://ssllabs.com/ssltest/index.html

http://isithacked.com
https://app.upguard.com/webscan
https://app.webinspector.com/online_scan
https://suip.biz/?act=sqlmap
https://pentest-tools.com/home
https://sitecheck.sucuri.net
https://quttera.com
https://siteguarding.com

https://transparencyreport.google.com/safe-browsing/search

 

5- داده های ورودی توسط کاربر را بدقت بررسی، برش و فیلترسازی کنید!

 

6- برای اپلیکیشن، قابلیت debug mode درست کنید تا در مواقع لزوم بتونید فعالیت های اپلیکیشن رو مانیتور و خطازدایی کنید.

۱ نظر ۹۸/۰۷/۱۸
یوشا آل ایوب

MSSQL / Azure SQL Database

 

MySQL

 

Oracle Database

 

jdbc, driver, versions, jdk, odbc, ojdbc

۰ نظر ۹۸/۰۲/۲۳
یوشا آل ایوب