برچسب‌گذاری راه‌حل‌ها


از تگ‌های تحلیل‌گر برای شناسایی این استفاده می‌شود که یک راه‌حل چگونه حل شده است.

سپس می‌توان از این تگ‌ها برای این کارها استفاده کرد:

  • پیوند دادن یک راه‌حل به رویکردها
  • پیوند دادن یک راه‌حل به مفاهیم
  • جست‌وجو برای راه‌حل‌هایی با تگ‌های مشخص

قالب

یک تگ رشته‌ای است که به این شکل قالب‌بندی می‌شود: <category>:<thing>.

ما از چهار دسته‌ی مختلف پشتیبانی می‌کنیم که از بالاترین سطح به پایین‌ترین سطح مرتب شده‌اند:

دسته توضیح میزان خاص بودن مثال‌ها
paradigm یک الگوی برنامه‌نویسی بسیار سطح‌بالا، مخصوص یک ترک خاص نیست imperative، functional
technique تکنیکی که به کار گرفته می‌شود سطح‌بالا، بیشترشان مخصوص یک ترک خاص نیستند recursion، immutability
construct یک سازه‌ی زبانی بسیاری از آن‌ها مخصوص یک ترک خاص نیستند bitwise-and، for-loop
uses کاربرد مخصوص یک زبان، مثل نوع‌ها یا متدها سطح‌پایین، مخصوص یک ترک خاص DateTime.add_seconds، IEnumerable

چند نمونه تگ:

  • paradigm:functional
  • technique:recursion
  • construct:bitwise-and
  • uses:DateTime.add_seconds

تگ‌های پرکاربرد

ترک‌ها آزادند راه‌حل‌ها را هر طور که صلاح می‌دانند تگ کنند، اما توصیه می‌کنیم در صورت امکان از فهرست تگ‌های پرکاربرد زیر استفاده کنید. استفاده از مجموعه‌ای مشترک از تگ‌ها به ما امکان می‌دهد کارهای جالبی انجام دهیم، مثل پیوند دادن راه‌حل‌ها میان ترک‌ها.

الگو

تگ توضیح
paradigm:array از برنامه‌نویسی آرایه‌ای استفاده می‌کند.
paradigm:declarative از برنامه‌نویسی اعلانی استفاده می‌کند.
paradigm:functional از برنامه‌نویسی تابعی استفاده می‌کند.
paradigm:generic از برنامه‌نویسی عمومی استفاده می‌کند.
paradigm:imperative از برنامه‌نویسی امری استفاده می‌کند.
paradigm:logic از برنامه‌نویسی منطقی استفاده می‌کند.
paradigm:meta از فرابرنامه‌نویسی استفاده می‌کند.
paradigm:object-oriented از برنامه‌نویسی شیءگرا استفاده می‌کند.
paradigm:procedural از برنامه‌نویسی رویه‌ای استفاده می‌کند.
paradigm:reflective از برنامه‌نویسی بازتابی استفاده می‌کند.
paradigm:stack-oriented از برنامه‌نویسی پشته‌محور استفاده می‌کند.

تکنیک‌ها

تگ توضیح
technique:bit-manipulation بیت‌ها را دستکاری می‌کند، معمولاً با عملگرهای بیتی (مثلاً AND، XOR یا شیفت به چپ)
technique:bit-shifting بیت‌ها را در یک عدد جابه‌جا می‌کند
technique:boolean-logic عملیات منطقی (AND، OR، NOT) را انجام می‌دهد
technique:composition از ترکیب استفاده می‌کند
technique:concurrency کد را به‌صورت هم‌روند اجرا می‌کند
technique:enumeration مقادیر را شمارش می‌کند
technique:error-handling خطاها را مدیریت می‌کند
technique:exceptions استثناها را می‌گیرد یا پرتاب می‌کند
technique:function-composition از ترکیب توابع استفاده می‌کند
technique:generator از یک مولد استفاده می‌کند
technique:higher-order-functions از توابع مرتبه‌بالا استفاده می‌کند
technique:immutability از تغییرناپذیری استفاده می‌کند
technique:immutable-collection از مجموعه‌ای استفاده می‌کند که محتوایش تغییرناپذیر است
technique:inheritance از ارث‌بری استفاده می‌کند
technique:laziness مقادیر را به‌صورت تنبل و فقط در صورت نیاز تولید می‌کند
technique:locks از قفل‌ها برای دسترسی انحصاری به منابع استفاده می‌کند
technique:looping از حلقه‌ها استفاده می‌کند
technique:math از ریاضیات استفاده می‌کند
technique:memory-management حافظه را مدیریت می‌کند
technique:ordering ترتیب داده‌ها را تعیین می‌کند
technique:parallelism کد را به‌صورت موازی اجرا می‌کند
technique:parser داده‌ها را تجزیه می‌کند
technique:pointers از اشاره‌گرها استفاده می‌کند
technique:randomness از تصادفی بودن استفاده می‌کند
technique:recursion از بازگشت استفاده می‌کند
technique:regular-expression از عبارت‌های باقاعده استفاده می‌کند
technique:short-circuiting از ارزیابی میانبر استفاده می‌کند تا از ارزیابی‌های غیرضروری جلوگیری کند
technique:sorted-collection از مجموعه‌ای استفاده می‌کند که عناصرش همیشه مرتب‌اند
technique:sorting داده‌ها را مرتب می‌کند
technique:tail-call-optimization از بهینه‌سازی فراخوانی پایانی برای بازگشت کارآمد استفاده می‌کند
technique:type-conversion مقادیر را از یک نوع به نوع دیگری تبدیل می‌کند
technique:unsafe از کد ناامن استفاده می‌کند (مثلاً حساب اشاره‌گر)

سازه‌ها

تگ توضیح
construct:abstract-class یک کلاس انتزاعی تعریف می‌کند
construct:abstract-method یک متد انتزاعی تعریف می‌کند
construct:add-assignment جمع را با انتساب ترکیب می‌کند
construct:add از جمع استفاده می‌کند
construct:array یک آرایه را تعریف یا استفاده می‌کند
construct:assignment یک مقدار را به یک متغیر/اسم اختصاص می‌دهد یا متصل می‌کند
construct:async-await از async/await استفاده می‌کند
construct:attribute یک عضو را با فراداده نشانه‌گذاری می‌کند
construct:auto-implemented-property یک ویژگی خودپیاده‌سازی‌شده تعریف می‌کند
construct:big-integer از یک عدد صحیح بزرگ استفاده می‌کند
construct:binary-number یک عدد را در نمایش دودویی تعریف می‌کند
construct:bit-array یک آرایه‌ی بیتی تعریف یا استفاده می‌کند
construct:bitwise-and-assignment یک AND بیتی را با انتساب ترکیب می‌کند
construct:bitwise-and یک AND بیتی را اجرا می‌کند
construct:bitwise-left-shift-assignment یک شیفت بیتی به چپ را با انتساب ترکیب می‌کند
construct:bitwise-left-shift یک شیفت بیتی به چپ را اجرا می‌کند
construct:bitwise-not یک NOT بیتی را اجرا می‌کند
construct:bitwise-or-assignment یک OR بیتی را با انتساب ترکیب می‌کند
construct:bitwise-or یک OR بیتی را اجرا می‌کند
construct:bitwise-right-shift-assignment یک شیفت بیتی به راست را با انتساب ترکیب می‌کند
construct:bitwise-right-shift یک شیفت بیتی به راست را اجرا می‌کند
construct:bitwise-xor-assignment یک XOR بیتی را با انتساب ترکیب می‌کند
construct:bitwise-xor یک XOR بیتی را اجرا می‌کند
construct:block یک بلوک تعریف می‌کند که فهرستی از دستورها را در خود دارد
construct:boolean یک مقدار منطقی تعریف یا استفاده می‌کند
construct:boxing از جعبه‌بندی استفاده می‌کند
construct:break از یک حلقه خارج می‌شود
construct:byte از یک عدد صحیح ۸ بیتی بدون علامت استفاده می‌کند
construct:catch یک استثنا را می‌گیرد
construct:char از یک کاراکتر استفاده می‌کند
construct:checked-arithmetic از حساب بررسی‌شده استفاده می‌کند (که از سرریز جلوگیری می‌کند)
construct:class یک کلاس تعریف می‌کند
construct:collection-initializer مقادیر یک مجموعه را با یک آغازگر تعیین می‌کند
construct:command یک فرمان تعریف می‌کند
construct:comment یک توضیح تعریف می‌کند
construct:comparison-chaining فراخوانی‌های مقایسه را زنجیره می‌کند
construct:comparison دو مقدار را از نظر ترتیب نسبی‌شان مقایسه می‌کند
construct:complex-number از یک عدد مختلط استفاده می‌کند
construct:computed-string یک رشته‌ی محاسبه‌شده تعریف می‌کند
construct:concatenation مقادیر را به هم می‌چسباند
construct:conditional-access به‌صورت شرطی به یک متد دسترسی پیدا می‌کند
construct:conditional-operator از یک عملگر شرطی سه‌تایی استفاده می‌کند
construct:conditional کد را به‌صورت شرطی اجرا می‌کند
construct:constant یک مقدار ثابت (تغییرناپذیر) تعریف می‌کند
construct:constructor یک سازنده تعریف می‌کند
construct:continue به تکرار بعدی یک حلقه ادامه می‌دهد
construct:conversion-operator یک عملگر تبدیل تعریف می‌کند
construct:copy یک مقدار را کپی می‌کند
construct:coroutine یک هم‌روال تعریف یا استفاده می‌کند
construct:custom-attribute یک خصیصه‌ی سفارشی تعریف می‌کند
construct:date-time از مقداری استفاده می‌کند که ترکیبی از تاریخ و زمان است
construct:date از مقداری استفاده می‌کند که یک تاریخ را نشان می‌دهد (بدون زمان)
construct:decimal از یک عدد اعشاری ۱۲۸ بیتی استفاده می‌کند
construct:decrement یک مقدار را کاهش می‌دهد
construct:default-interface-implementation پیاده‌سازی پیش‌فرض را در یک رابط تعریف می‌کند
construct:default یک مقدار پیش‌فرض تعریف می‌کند (مثلاً برای یک پارامتر)
construct:destructuring یک مقدار را به اجزای سازنده‌اش تجزیه می‌کند
construct:dictionary-comprehension یک دیکشنری را با یک درک می‌سازد
construct:dictionary یک دیکشنری/نگاشت تعریف یا استفاده می‌کند
construct:discard از مقدار ویژه‌ی نادیده‌انگاشتن استفاده می‌کند
construct:divide-assignment تقسیم را با انتساب ترکیب می‌کند
construct:divide از تقسیم استفاده می‌کند
construct:do-while-loop از یک حلقه‌ی do-while استفاده می‌کند
construct:double از یک عدد اعشاری ۶۴ بیتی استفاده می‌کند
construct:else یک شاخه‌ی else تعریف می‌کند
construct:enum یک enum تعریف یا استفاده می‌کند (شمارشی از مقادیر)
construct:equality برابری دو مقدار را مقایسه می‌کند
construct:error یک خطا تعریف یا استفاده می‌کند
construct:event رویدادها را تعریف یا استفاده می‌کند
construct:exception استثناها را تعریف یا استفاده می‌کند
construct:explicit-conversion به‌صورت صریح از یک نوع به نوع دیگری تبدیل می‌کند
construct:explicit-import فقط بخشی از قابلیت‌ها را وارد می‌کند
construct:exponentiation توان یک مقدار را محاسبه می‌کند
construct:expression-bodied-member یک عضو با بدنه‌ی عبارت تعریف می‌کند
construct:extension-method یک متد الحاقی تعریف می‌کند
construct:field-access به یک فیلد دسترسی پیدا می‌کند
construct:field یک فیلد تعریف می‌کند
construct:finally از finally استفاده می‌کند تا مطمئن شود یک بلوک کد مشخص همیشه اجرا می‌شود
construct:flags-enum یک enum پرچمی تعریف یا استفاده می‌کند
construct:float از یک عدد اعشاری ۳۲ بیتی استفاده می‌کند
construct:floating-point-number از یک عدد اعشاری استفاده می‌کند
construct:for-loop از یک حلقه‌ی for استفاده می‌کند
construct:foreach از یک حلقه‌ی foreach استفاده می‌کند
construct:function-overloading از سربارگذاری توابع استفاده می‌کند
construct:function یک تابع تعریف می‌کند
construct:generator یک تابع یا متد مولد تعریف می‌کند
construct:generic-function تابعی تعریف می‌کند که با یک یا چند نوع پارامتری‌شده است
construct:generic-method متدی تعریف می‌کند که با یک یا چند نوع پارامتری‌شده است
construct:generic-type نوعی تعریف می‌کند که با یک یا چند نوع پارامتری‌شده است
construct:getter یک گیرنده تعریف می‌کند
construct:global-function تابعی تعریف می‌کند که به‌صورت سراسری در دسترس است
construct:global-variable متغیری تعریف می‌کند که به‌صورت سراسری در دسترس است
construct:header یک فایل سرآیند تعریف می‌کند
construct:hexadecimal-number یک عدد را در نمایش مبنای شانزده تعریف می‌کند
construct:if از دستور if استفاده می‌کند
construct:implicit-conversion به‌صورت ضمنی از یک نوع به نوع دیگری تبدیل می‌کند
construct:implicit-loop به‌صورت ضمنی روی مجموعه‌ای از مقادیر حلقه می‌زند
construct:implicit-return یک مقدار را به‌صورت ضمنی برمی‌گرداند
construct:import قابلیت‌هایی را که جای دیگری پیاده‌سازی شده‌اند وارد می‌کند (مثلاً از یک فضای نام/ماژول)
construct:increment یک مقدار را افزایش می‌دهد
construct:index-operator عملگری برای نمایه‌گذاری یک شیء تعریف می‌کند
construct:indexer یک نمایه‌ساز تعریف یا استفاده می‌کند
construct:indexing به یک مقدار با نمایه دسترسی پیدا می‌کند
construct:inequality نامساوی بودن دو مقدار را مقایسه می‌کند
construct:infix-operator یک عملگر میان‌وندی تعریف می‌کند
construct:initialization یک شیء را پس از ساخت آغاز می‌کند
construct:initializer-list مقادیر فیلدهای یک شیء را آغاز می‌کند
construct:initializer یک شیء را آغاز می‌کند
construct:instance نمونه‌ای از یک نوع را می‌سازد یا استفاده می‌کند
construct:instantiation نمونه‌ای از یک نوع می‌سازد
construct:int از یک عدد صحیح ۳۲ بیتی علامت‌دار استفاده می‌کند
construct:integral-number از یک عدد صحیح استفاده می‌کند
construct:interface یک رابط تعریف می‌کند
construct:invocation یک متد/تابع را فراخوانی می‌کند
construct:iterator یک تابع یا متد تعریف می‌کند که می‌توان روی آن پیمایش کرد
construct:jagged-array از یک آرایه‌ی دندانه‌دار استفاده می‌کند (آرایه‌ای از آرایه‌ها)
construct:lambda یک لامبدا تعریف می‌کند (که به آن «تابع بی‌نام» هم می‌گویند)
construct:linked-list از یک لیست پیوندی استفاده می‌کند
construct:linq از LINQ استفاده می‌کند
construct:list-comprehension یک لیست را با درک می‌سازد
construct:list از یک لیست استفاده می‌کند
construct:local-function یک تابع محلی تعریف می‌کند
construct:local-variable یک متغیر محلی تعریف می‌کند
construct:lock از یک قفل استفاده می‌کند
construct:logical-and یک AND منطقی را اجرا می‌کند
construct:logical-not یک NOT منطقی را اجرا می‌کند
construct:logical-or یک OR منطقی را اجرا می‌کند
construct:long از یک عدد صحیح ۶۴ بیتی علامت‌دار استفاده می‌کند
construct:loop یک حلقه تعریف می‌کند
construct:macro یک ماکرو تعریف می‌کند
construct:membership-test بررسی می‌کند که آیا یک مقدار عضوی از مقدار دیگری است
construct:metatable یک فرا جدول تعریف می‌کند
construct:method-chaining چندین فراخوانی متد را زنجیره می‌کند
construct:method-overloading از سربارگذاری متدها استفاده می‌کند
construct:method-override یک متد بازنویسی‌شده تعریف می‌کند
construct:method یک متد تعریف می‌کند
construct:module یک ماژول تعریف می‌کند (گروه‌بندی کد)
construct:modulo-assignment باقی‌مانده‌ی تقسیم را با انتساب ترکیب می‌کند
construct:modulo از باقی‌مانده‌ی تقسیم استفاده می‌کند
construct:multi-dimensional-array از آرایه‌ای با چند بعد استفاده می‌کند
construct:multiline-string یک رشته‌ی چندخطی تعریف می‌کند
construct:multiple-assignment چند مقدار را هم‌زمان اختصاص می‌دهد
construct:multiple-dispatch از ارسال چندگانه استفاده می‌کند
construct:multiply-assignment ضرب را با انتساب ترکیب می‌کند
construct:multiply از ضرب استفاده می‌کند
construct:named-argument یک آرگومان را با اسم پاس می‌دهد
construct:namespace یک فضای نام تعریف می‌کند (گروه‌بندی کد)
construct:nested-function یک تابع تودرتو تعریف می‌کند
construct:nested-type یک نوع تودرتو تعریف می‌کند
construct:nesting از تودرتویی استفاده می‌کند
construct:nint از یک عدد صحیح علامت‌دار وابسته به پلتفرم استفاده می‌کند (۳۲ یا ۶۴ بیتی)
construct:nuint از یک عدد صحیح بدون علامت وابسته به پلتفرم استفاده می‌کند (۳۲ یا ۶۴ بیتی)
construct:null از null/nil برای نشان دادن نبود یک مقدار استفاده می‌کند
construct:nullability با مقادیر null/nil سر و کار دارد
construct:number از یک عدد استفاده می‌کند (علامت‌دار یا بدون علامت)
construct:object-initializer مقادیر یک شیء را با یک آغازگر تعیین می‌کند
construct:octal-number یک عدد را در نمایش مبنای هشت تعریف می‌کند
construct:operator-overloading از سربارگذاری عملگرها استفاده می‌کند
construct:option از یک نوع گزینه استفاده می‌کند
construct:optional-parameter یک پارامتر اختیاری تعریف می‌کند
construct:overflow از سرریز حساب استفاده می‌کند
construct:parameter یک پارامتر تعریف می‌کند
construct:parenthesized-expression یک عبارت را در پرانتز می‌گذارد
construct:pattern-matching از تطبیق الگو استفاده می‌کند
construct:pattern الگویی تعریف می‌کند که در تطبیق الگو به کار می‌رود
construct:pipe-backward از عملگر لوله‌ی رو به عقب استفاده می‌کند
construct:pipe-forward از عملگر لوله‌ی رو به جلو استفاده می‌کند
construct:pipeline یک خط لوله تعریف می‌کند
construct:point-free توابعی را بدون آرگومان‌هایی که روی آن‌ها کار می‌کنند تعریف می‌کند
construct:pointer از یک اشاره‌گر استفاده می‌کند
construct:postfix-decrement یک مقدار را با نمایش پسوندی کاهش می‌دهد
construct:postfix-increment یک مقدار را با نمایش پسوندی افزایش می‌دهد
construct:prefix-decrement یک مقدار را با نمایش پیشوندی کاهش می‌دهد
construct:prefix-increment یک مقدار را با نمایش پیشوندی افزایش می‌دهد
construct:print یک مقدار را در کنسول چاپ می‌کند
construct:property یک ویژگی (گیرنده/تنظیم‌کننده) تعریف می‌کند
construct:query-expression داده‌ها را از طریق یک عبارت پرس‌وجو می‌کند
construct:queue از یک صف استفاده می‌کند
construct:range یک بازه تعریف می‌کند
construct:read-only یک مقدار فقط‌خواندنی تعریف می‌کند
construct:record یک رکورد تعریف می‌کند
construct:regular-expression یک عبارت باقاعده تعریف یا استفاده می‌کند
construct:result از یک نوع نتیجه استفاده می‌کند
construct:return-type نوع بازگشتی یک تابع یا متد را تعریف می‌کند
construct:return از یک تابع/متد برمی‌گردد
construct:sbyte از یک عدد صحیح ۸ بیتی علامت‌دار استفاده می‌کند
construct:scientific-notation-number یک عدد را در نمایش علمی تعریف می‌کند
construct:set-comprehension یک مجموعه را با درک می‌سازد
construct:set از یک مجموعه استفاده می‌کند
construct:setter یک تنظیم‌کننده تعریف می‌کند
construct:short از یک عدد صحیح ۱۶ بیتی علامت‌دار استفاده می‌کند
construct:slice از یک برش استفاده می‌کند
construct:stack از یک پشته استفاده می‌کند
construct:static-field یک فیلد ایستا تعریف می‌کند
construct:static-method یک متد ایستا تعریف می‌کند
construct:string-formatting یک رشته را با یک رشته‌ی قالب می‌سازد
construct:string-interpolation یک رشته‌ی میان‌گذاری‌شده تعریف می‌کند
construct:string یک رشته تعریف می‌کند
construct:struct یک ساختار تعریف می‌کند
construct:subtract-assignment تفریق را با انتساب ترکیب می‌کند
construct:subtract از تفریق استفاده می‌کند
construct:sum-type یک نوع جمع تعریف می‌کند
construct:switch از یک switch استفاده می‌کند
construct:table یک جدول تعریف می‌کند
construct:template-alias یک نام مستعار برای یک قالب تعریف می‌کند
construct:template-parameter یک پارامتر قالب تعریف می‌کند
construct:template یک قالب تعریف می‌کند
construct:throw یک استثنا پرتاب می‌کند
construct:time از شیءای استفاده می‌کند که زمان را نشان می‌دهد
construct:try یک استثنا را به‌صورت صریح مدیریت می‌کند
construct:tuple از یک تاپل استفاده می‌کند
construct:type-alias یک نام مستعار برای یک نوع تعریف می‌کند
construct:type-conversion یک مقدار را به نوع دیگری تبدیل (کست) می‌کند
construct:type-extension یک نوع را با قابلیت‌های جدید گسترش می‌دهد
construct:type-inference نوع یک مقدار/تابع را به‌صورت خودکار استنتاج می‌کند
construct:type-test بررسی می‌کند که آیا یک مقدار نوع مشخصی دارد
construct:uint از یک عدد صحیح ۳۲ بیتی بدون علامت استفاده می‌کند
construct:ulong از یک عدد صحیح ۶۴ بیتی بدون علامت استفاده می‌کند
construct:unary-minus از یک منهای یکانی استفاده می‌کند
construct:unary-plus از یک به‌علاوه‌ی یکانی استفاده می‌کند
construct:underscored-number از عددی استفاده می‌کند که زیرخط‌ها جداکننده‌ی ارقامش هستند
construct:union-type یک نوع اجتماع تعریف می‌کند
construct:user-defined-exception یک استثنای سفارشی و کاربرتعریف‌شده تعریف می‌کند
construct:ushort از یک عدد صحیح ۱۶ بیتی بدون علامت استفاده می‌کند
construct:using-directive از کد یک فایل دیگر استفاده می‌کند
construct:using-statement یک مقدار را با دستور using اختصاص می‌دهد و آزاد می‌کند
construct:varargs پارامتری تعریف می‌کند که پاس دادن صفر یا چند مقدار را پشتیبانی می‌کند
construct:variable متغیری اعلان می‌کند
construct:vector از یک بردار استفاده می‌کند
construct:verbatim-string از یک رشته‌ی خام استفاده می‌کند (بدون دنباله‌های فرار)
construct:virtual-method یک متد مجازی تعریف می‌کند
construct:visibility-modifiers میزان دیده‌شدن یک سازه را مشخص می‌کند (مثلاً یک متد یا کلاس)
construct:while-loop از یک حلقه‌ی while استفاده می‌کند
construct:yield در یک حلقه، مقداری را به‌صورت تنبل تولید می‌کند

کاربردها

از آنجا که این دسته مخصوص یک زبان است، تگ پرکاربرد مشخصی در اینجا وجود ندارد.