خاطرات فنی من

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

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

خیلی از مسائل در این صفحه توضیح داده شده است.

  1. یک اکستنشن به نام  GitHub Pull Requests and Issues را باید نصب کنید.
  2. در آن Sign In کنید (طبیعتا باید قبلا در سایت GitHub رجیستر کرده باشید)
  3. اگر می خواهید روی یک repository خاص کار کنید صاحب آن باید شما را به عنوان مشارکت کننده ثبت کرده باشد (در قسمت تنظیمات repository در سایت) و شما باید دعوت او را پذیرفته باشید (معمولا از طریق قسمت notifications در سایت این کار انجام می شود. اگر برای شما در آن قسمت چیزی نیامد، نشانی repository  را در مرورگر باز کنید. آنجا به شما می گوید که دعوت شده اید)
  4. در صفحه اول VSCode گزینه clone repository را بزنید، نشانی repoistory را وارد کنید. صبر کنید تا clone انجام شود. حالا یک نسخه از پروژه روی سیستم شماست که می توانید با آن کار کنید

متاسفانه بلاگ امکان ذخیره متنی که نوشته ام را نمی دهد

متن را در این فایل ذخیره کرده ام:

https://bayanbox.ir/download/3910449192457215172/vscode-github.docx

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۵ شهریور ۰۲ ، ۱۸:۴۱
محسن

نکته مهم این است که django بر خلاف انتظار اصلا کاری به تگهای کامنت HTML ندارد و آنها را نادیده می گیرد، گویی آن تگها وجود ندارند ولی محتوای داخل آن تگها وجود دارد. فقط به تگهای {%  %} نگاه می کند. حتی اگر قسمتی از کد را داخل کامنت HTML گذاشته باشید دقیقا همان قسمت داخل کامنت را هم بدون توجه بررسی می کند و خروجی خودش را می سازد. البته که خروجی داخل کامنتهای HTML قرار می گیرد.

مثلا اگر شما در جای نامناسب چنین چیزی بنویسید پیام خطا دریافت خواهید کرد:

<!-- {% endif %} -->

پیام خطایی مشابه به این:

Invalid block tag on line 33: 'endif'

برای کامنت کردن چیزی از دید django باید از این تگها استفاده کنید:

{% comment %}

{% endcomment %}
۰ نظر موافقین ۰ مخالفین ۰ ۱۹ مرداد ۰۲ ، ۱۱:۰۴
محسن

اگر در قسمت ادمین django یوزر درست کرده باشید دیده اید که می توان برای هر کاربر و هر گروه از کاربران روی هر کلاسی که داخل models تعریف کرده اید دسترسی تعریف کنید: هر کاربر می تواند دسترسی add , delete , change or view روی هر مدل تعریف شده داشته باشد.

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

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۰۲ ، ۱۸:۳۵
محسن

یکی از پکیجهایی که می توان برای workflow در django از آن استفاده کرد، joeflow است.

خب، هنوز دقیقا نمی دانم که چطور می شود از آن استفاده کرد، اما فعلا برای ثبت در تاریخ می نویسم که چطور مثال خودش را روی ویندوز راه اندازی کردم:

 

 

  1. برای استفاده از joeflow باید celery را نصب داشته باشید و برای استفاده از celery باید redis را.
  2. pip install -U "celery[redis]"
  3. python3 -m pip install "joeflow[reversion,dramatiq,celery]"
  4. اما redis را نمی توانید مستقیما در windows اجرا کنید و به wsl نیاز دارید.
  5. باید wsl در windows features فعال باشد
  6. مطابق این دستورالعمل ، در cmd این دستور را اجرا کنید: wsl --install -d <DistroName>  (دفت کنید که DistroName نام لینوکسی است که می خواهید نصب کنید. مثلا Ubuntu)
  7. حالا داخل پنجره لینوکس، مطابق این دستورالعمل دستورات زیر را اجرا کنید تا redis نصب شود:  
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis

و سپس این دستور برای اجرا کردن redis:

sudo service redis-server start

و این یکی برای تست کردن آن

redis-cli 
127.0.0.1:6379> ping
PONG

8.از این صفحه فایل نصبی graphviz را دانلود و نصب نمایید. در هنگام نصب حتما تیک بزنید که فایلهای اجرایی آن در PATH  قرار داده شود.

9.بعد از نصب، باید سیستم را ریست کنید تا یک چیزهایی اعمال شود.

حالا باید بتوانید به این نشانی http://127.0.0.1:8000/start/ (البته که مطابق مشخصات سرور خودتان) بروید و مثال joeflow را اجرا کنید.

این هم پروژه ای است که ما استفاده کردیم

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ مرداد ۰۲ ، ۰۹:۵۱
محسن

برای اینکه از روند کار و جزئیات Class Based Views بیشتر سر در بیاورید بد نیست به این سایتها نگاهی بیاندازید:

 

Classy Class Based View site  : https://ccbv.co.uk/ 

 

CBV Diagrams pages : https://www.brennantymrak.com/articles/django-class-based-views-diagrams.html

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۰۲ ، ۱۰:۴۱
محسن

بهترین جواب این است که برای این روزها باید source control داشته باشید و براحتی همه فایلهای حذف شده را بازگردانید.

اما حالا بدون source control چه کنیم؟

 

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

مطابق این لینک اول باید همه سابقه migration را حذف کنید و از نو بسازید:

a. go to python shell python manage.py shell 
b. type from django.db.migrations.recorder import MigrationRecorder 
c. type MigrationRecorder.Migration.objects.all().delete()

 

برای ساخت migrations جدید:

./manage.py makemigrations <myapp>

 

 

و در نهایت:

python manage.py migrate --fake 
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۰۲ ، ۱۸:۰۹
محسن

امروز ناگهان متوجه شدیم که سرور Sharepoint به SQLServer وصل نمی شود. پیام مبنی بر این بود که این سرور از فارم خارج شده یا سرور دیتابیس در دسترس نیست.

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۸ ، ۱۱:۳۵
محسن
در مجموعه ای که من کار می کنم، تجربه استفاده از دو نرم افزار برای هلپ دسک وجود دارد:

بگذارید - کلی و بی ترتیب - بگویم اگر من بخواهم بین این دو انتخاب کنم چه چیزهایی را مطرح خواهم کرد
۲ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۸ ، ۱۷:۵۴
محسن

اینکه سرویس دسک با چه سرعتی درخواستها را به گروه های کارشناسی ارجاع می دهد معیار مهمی برای سنجش کارایی سرویس دسک است.

برای اینکه چنین گزارشهایی در SErviceDesk Plus داشته باشید نیازمند نوشتن Query  هستید

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۸ ، ۰۹:۵۳
محسن

هنگام نوشتن Query Report در حالیکه Query شما در ManagementStudio بی عیب و نقص اجرا می شود، در ServiceDesk Plus خطایی مشابه خط زیر میبینید:

java.lang.StringIndexOutOfBoundException: String index out of range: -1

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۸ ، ۰۷:۵۸
محسن