کد میراث کدام است؟ آیا این برای شما خوب هست؟ – یادداشت های مهندس

کار با کد میراث. آیا برای شما خوب است؟

بله تجربه با کد میراث باید باشد هر کس قادر به کار در محیط تازه ای است که در آن همه چیز جدید و براق است، اما کار با میراث یک کار بسیار دشوار است که ذهن های جدیدی را ایجاد می کند و مغز را دوباره می کند.

100 درصد از توسعه دهندگان من به آن صحبت کرده ام، متنفرم! آنها نمی توانند کدهای میراثی را حفظ کنند و اگر علامت فاز تعمیر و نگهداری باشند، در جهت مخالف مانند آتش سوزی اجرا خواهند شد. انتظار می رود که قابل درک باشد. کار با کد میراث آسان نیست.

همانطور که در بالا ذکر شد، میراث کد از شرکت به شرکت متفاوت است، و در مواردی که کد میراث پایه ای برای برنامه های آینده است، این امر به دانش و تجربه ویژه ای می انجامد تا بتواند از طریق کد فاسد حرکت کند و تغییرات دفاعی را با دقت جراحی انجام دهد. یک فرصت عالی برای شما برای استفاده از مهارت های refactoring خود، یادگیری شیوه های جدید و بهترین روش های نزدیک شدن به قطعات بسیار سخت و اغلب پیچیده از کد.

نرم افزار ویرایش مجدد برنامه های مختلف متفاوت است از refactoring کلاس خود را که شما یک هفته پیش نوشت. این مورد است که در آن توجه شدید به جزئیات لفظی (توسط بسیاری از ستایش …) می تواند بینایی تونل ایجاد کند و در واقع آسیب برساند. این جایی است که شما یاد خواهید گرفت که چگونه بینش بزرگتر یک سیستم به طور کلی (با در نظر گرفتن نزدیکترین نقطه مقصد refactoring، نزدیکترین نقطه عطف) و جزئیات کوچک، تغییرات کوچک، تمرکز کنید. شما فقط می توانید بر روی یک بخش از سیستم تمرکز کنید که نیاز به یادگیری و شناختن تمامی API های داخلی و خارجی و مسیرهای ارتباطی را از داخل دارد. چرا؟ به خاطر شکنندگی. حتی یک تغییر کوچک در کد میراث، به ویژه کد که شما نا آشنا هستید، می تواند موجب واکنش های ناپیوستگی آبشارها شود.

اما این یک مورد شدید با بسیار قدیمی است (آخرین نسخه اصلی 10+ سال پیش) و سیستم های ضعیف حفظ شده . اگر با یک برنامه تازه کار کار می کنید، هنوز برای یادگیری بسیار مهم است و از رضایت از آن لذت می برید. اگر به وضوح یک کد قدیمی را مشاهده کنید که توسط شما نوشته شده است، این یک نشانه واضح از پیشرفت شخصی و تکامل شماست، برای من کاملا رضایت بخش است. و هنگامی که با سیستم های بزرگتر کار می کنید، می توانید تصمیمات مهندسی کاملا پیچیده ای را که در آن زمان ساخته شده اند، تشخیص دهید و الگوهای آنها را ببینید و هماهنگی خود را با روند فعلی ترسیم کنید.

مهمترین نرمافزار قدیمی، جایی است که بیشترین استفاده از دانش دامنه خود را از . نیاز به مهندسی معکوس گسترده (به علت شکنندگی که در بالا توضیح داده شد) به شما اطلاعات زیادی در مورد دامنه ای می دهد که این نرم افزار برای تصمیم گیری ها و تصمیمات بازاریابی، الزامات و حتی مقررات ساخته شده است.

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

چگونه می توانم تعیین کنم آیا یک گواهی نامه در CT Log من است؟

من با اسکن شفاف گزارش های شفاف برای دامنه های خود امتحان می کنم، و من می خواهم فیلدهای ثبت ورود برای گواهینامه های قانونی صادر شده، بنابراین من فقط دریافت هشدار زمانی که کسی دیگری یک گواهی برای دامنه من

سعی کردم ببینم آیا ورودی CT ورودی من با مقایسه اثر انگشت آن با اثر انگشت گواهی سرور من بود. با این حال، متوجه شدم که برخی از ورودی ها در ورود به سیستم، «پیش گواهی ها» هستند که دارای یک افزونه انتقادی اضافی هستند تا آنها را در مرورگرها معتبر نکنند. ظاهرا اینها معادل با گواهی نهایی صادر شده برای اهداف شفافیت هستند (به نظر می رسد یک ایده بد برای صرفنظر کردن از همه پیش گواهینامه ها)، اما اثر انگشت آنها با کلیدی که من دارم مطابقت ندارد.

چگونه می توانم تعیین کنم که چنین پیش گواهی معادل یک گواهی صادر شده است؟

آیا در عصر دیجیتال حریم خصوصی وجود دارد؟

Privacy Defined

در دنیای فیزیکی، بین فضای خصوصی و فضای عمومی تفاوت قابل ملاحظه ای وجود دارد. به عنوان مثال، خانه شما – و محیط اطراف آن – فضای خصوصی شماست و شما حق دارید که در خانه خود از حریم خصوصی لذت ببرید. همسایگان شما نمیتوانند بارور شوند و تقاضای پخت و پز یا شستشو را متوقف کنند. افراد دیگر نمیتوانند به راحتی راه بروند، روی نیمکت نشسته و تلویزیون را با شما تماشا کنند.

وقتی در رستوران، یک ساحل یا یک اتوبوس هستید، داستان متفاوت است. هر کسی میتواند با شما بنشیند و هر کسی میتواند به شما بپیوندد زیرا شما در منطقه عمومی هستید. فضای خصوصی ما بستگی به جایی که هستیم. ما یک فضای خصوصی در دفتر داریم – شاید اتاق ما. ما در هنگام تعطیلات به برخی از حریم خصوصی ها احترام می گذاریم.

در هر صورت، حریم خصوصی به وضوح در دنیای فیزیکی مجزا شده است. در دنیای دیجیتال، با این حال، کمی دشوار است. هر کدام از ما ایده ای از آنچه که باید خصوصی و چه چیزی باید در مکان دیجیتال عمومی باشد، وجود دارد، اما به نظر می رسد هیچ معیار جهانی ای وجود ندارد.

با این وجود، این بهانه ای برای نفوذ به حریم خصوصی افراد نیست. شرکت های بزرگ و حتی دولت نمی تواند فقط می گوید: "هیچ خطی روشن بین فضای خصوصی و عمومی در دنیای دیجیتال وجود ندارد، بنابراین ما در واقع به نفوذ حریم خصوصی هر کسی حمله نمی کنیم."

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

تهاجم به حریم خصوصی

از این تعاریف به تنهایی، می توان درک کرد که جایی که تهاجم به حریم خصوصی در دنیای دیجیتال رخ می دهد. اگر یک حساب کاربری با رمز محافظت شده باشد، تمام فعالیت های مالک حساب باید خصوصی باشد. این نباید "مشاهده" یا "درگیر" توسط هر کسی غیر از صاحب شود.

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

 اهمیت حفظ حریم خصوصی در عصر دیجیتال

مهم نیست که نفوذگر هر گونه آسیب زدن – از ایمیل برای کسب سود خود استفاده کنید، یا اطلاعاتی را از ایمیل دریافت کنید که می تواند به مالک یا شرمنده باشد. تهاجم به حریم خصوصی، حمله به حریم خصوصی است، بدون توجه به هدف و بدون توجه به نتیجه چنین اقدام.

این واضح ترین شکل از تهاجم به حریم خصوصی است. اما این تهاجم نیز در شیوه های ظریف و خاموش اتفاق می افتد. متاسفانه، میلیون ها کاربر اینترنت، حریم خصوصی خود را توسط شخص دیگری از جمله دولت و شرکت های بزرگ تهاجمی می کنند.

ارائه دهنده خدمات اینترنتی شما اطلاعات تاریخچه مرورگر خود را جمع آوری می کند. کارگزاران داده ها کوکی ها را در اختیار دارند تا عادت های آنلاین خود، آدرس IP خود، نوع دستگاه شما و حتی اندازه صفحه نمایش شما را حفظ کنند. ظاهرا نرم افزار آموزشی بی گناه که برای فرزندانتان مورد استفاده قرار می دهد، در واقع اطلاعات مربوط به فرزندان شما را جمع آوری می کند.

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

Cryptocurrency

 Cryptocurrency و Bitcoins

این بسیار ترسناک است به ویژه هنگامی که آن را به معاملات مالی و اطلاعات می پردازد. شما ممکن است بعضی از ایده های تجاری خلاقانه ای را که می خواهید به صورت آنلاین انجام دهید، اما به دلیل کمبود امنیت ناامید می شوید. یا ممکن است فرصتهای تجاری آنلاین وجود داشته باشد که برای شما ارائه شده است، اما شما به دلیل برخی از مسائل مربوط به حریم خصوصی به عقب برگشته اید.

خوب، یکی از جدیدترین ایده های کسب و کار جدید که می توانید به صورت آنلاین انجام دهید، درگیر شدن در بورس اوراق بهادار است. Cryptocurrency ها یک نوع ارزهای دیجیتال هستند که از رمزنگاری برای رمزگذاری و رمزگذاری تراکنشهایی که در اطراف آن حرکت می کنند، استفاده می شود.

ویژگی جذاب کریستوگرام ها این است که آن را به صاحبان آن ناشناس می کند. شما نباید نگران هرکدام از هک کردن حساب کاربری خود و استفاده از آن برای کسب سود خود باشید. کیف پول Cryptocurrency به مردم و مالک مربوط نیست. در عوض، به یک یا چند کلید یا آدرس گره خورده است. این باعث می شود که صاحبان کریستوآرایی غیر قابل شناسایی شوند.

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

آیا در عصر دیجیتال حریم خصوصی وجود دارد؟ ] همانطور که قبلا گفته شد، ممکن است مشکلی در مشارکت در فرصت های کسب و کار آنلاین مانند پول دیجیتال به علت مسئله تهاجم به حریم خصوصی داشته باشید. این بسیار ترسناک است که شما کاملا می توانید اطلاعات شخصی خود را بدست آورید و جمع آوری کنید.

 حریم خصوصی در عصر دیجیتال

بنابراین ما را به سوال ناخوشایند می اندازد: آیا در این عصر دیجیتال حریم خصوصی وجود دارد؟ پاسخی که در حال حاضر می تواند یک شماره شگفت انگیز باشد. به غير از آنجايی که دولتها و دولتها قوانين و مقرراتی را تصويب کنند که به طور خاص با تهاجم به حريم خصوصی مبارزه کنند، کاربران اینترنت نمیتوانند از حريم خصوصی واقعی و واقعی لذت ببرند. کاربران اینترنت مانند خودتان باید حق دارند انتخاب کنند که آیا شما تبلیغ کنندگان و نرم افزار را برای جمع آوری داده های خود می خواهید.

با این حال، دلسرد نشوید. بسیاری از مردم درخشان در حال فکر کردن به راه هایی هستند که واقعا اینترنت را به مکانی تبدیل کنند که هرکسی بتواند از آزادی بدون ترس از آسیب و تهاجم لذت ببرد. Cryptocurrencies یکی از ابزارهایی است که برای مبارزه با تهاجم به حریم خصوصی طراحی شده است. شبکه های خصوصی مجازی، با رمزگذاری بسته های داده ای که شما هنگام ارسال و دریافت از کامپیوتر خود دریافت می کنید، وسیله ای برای کمک به مردم حفظ حریم خصوصی و امنیت آنها است.

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

رایان پیتر

یک جادوگر فناوری خوش شانس. نوشتن تکنولوژی اشتیاق است، در حالی که پخت و پز سرگرمی است.

آیا ویروس تروجان اسب است؟ (یا موضوع بحث است؟)

تروجان یک تروجان است، بدون شک. اما این یک ویروس است؟
در حالی که googled، زیر را دریافت کرد،

اسب تروجان نیز ممکن است به عنوان یک ویروس تروجان شناخته شود، اما
  این از لحاظ فنی نادرست است برخلاف یک ویروس کامپیوتری، یک اسب تروجان است
  قادر به تکثیر خود نیست، و نه می تواند بدون پایان دادن به آن
  کمک کاربر

اما در کتاب Matt Bishop، "امنیت رایانه: هنر و علم"، این می گوید

اسب های تروجان می توانند خود را کپی کنند

  • که بدان معنی است که ویروس است.

آیا این موضوع بحث یا ماده ای از دولت (یعنی به تروجان خاص بستگی دارد که چگونه رفتار می کند، می تواند تکثیر کند یا خیر).

آیا نوع اجبار در جاوا اسکریپت یک چیز خوب است؟ – یادداشت های مهندس

بسیاری از توسعه دهندگان نرم افزار با تجربه اغلب در هنگام جاوااسکریپت جاوا (داوطلبانه یا نه) و ویژگی های زبان مادری خود را به عنوان نوع اجبار، مفاهیم "حقیقت" و "دروغ" و غیره و غیره و گاهی اوقات نسبتا. اما اگر این باز بودن، آزادی زبان به طور ضمنی تایپ شود، در حقیقت یک ابزار عالی در جعبه ابزار شما در هنگام نوشتن راه حل های پاک و ظریف است

وحشتی که نمی دانید عوارض جانبی، مصنوعاتی که آن زبان تولید می کند یکی از مواردی که به شدت تایپ شده است، بسیار رایج است، به ویژه در میان "تازه واردین" مفاهیم فوق. عدم قطعیت برای توسعه دهندگان بدتر است! اما اغلب اوقات عدم اطمینان ناشی از عدم تجربه خاص است.

بیایید نگاهی به کار نمونه، رویکرد سنتی و رویکرد با نوع اجبار

وظیفه

ما باید تغییر دینامیک عرض عناصر DOM در یک ظرف بسته به تعداد عناصر وجود دارد، تا اطمینان حاصل شود که آنها تمام عرض کانتینر را جمع می کنند.

حداکثر عناصر 3. اگر ما فقط 2 عنصر داشته باشیم، پس هر یک از آن ها نیاز به عرض 50٪، اگر ما 3 عنصر داشته باشیم، عرض هر عنصر باید 33٪ باشد. البته عنصر تک باید 100٪ عرض را داشته باشد.

ما می دانیم که عنصر توسط پرچم مربوط Boolean وجود دارد.

راه حل CSS زیبا ترین خواهد بود، درست است؟ اما به عنوان مثال، اجازه می دهد تا تصور کنید CSS در سال 1996 گیر کرده است.

رویکرد سنتی

این در مورد زشت است!

آنجا شما بروید:

 بولی  FIRST_ELEMENT؛ 
بولین SECOND_ELEMENT؛
بولی THIRD_ELEMENT؛

رشته عرض؛

// اگر تمام عناصر موجود باشد
اگر (FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '33٪ '؛
}

// اگر 2 عنصر موجود باشد
اگر (FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '50٪'؛
}

اگر (FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪؛
}

if (! FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪ '؛
}

// اگر تنها یک عنصر وجود داشته باشد
اگر (! FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '100٪'؛
}

اگر (FIRST_ELEMENT &&! SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '100٪'؛
}

if (! FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '100٪'؛
}

این کد کار را انجام می دهد. اما آه پسر .. چیزی که درون من افتاد وقتی وارد آن شدم.

آیا می توانیم با رویکرد سنتی بهتر عمل کنیم؟ من هم اینچنین فکر میکنم. به طور پیش فرض و خلاص شدن از آخرین 3 شرایط:

 رشته  width = '100٪'؛ 

// اگر همه عناصر حضور داشته باشند
اگر (FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '33٪ '؛
}

// اگر 2 عنصر موجود باشد
if (FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT {19459019] width = '50٪ '؛
}

if (FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪؛

اگر (! FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪ '؛
}

این کد هنوز بوی خاصی دارد. ما می توانیم با «بهینه سازی» بیشتر، XOR بیتی را معرفی کنیم، منطق بیشتری اضافه کنیم، مقدار شرایط را کاهش دهیم. سوال این است: آیا قابل خواندن است؟ یا این یکی از آن چیزهایی است که شما را مجبور به نظر دادن برای نسل های آینده می کند تا بدانند که در واقع چه اتفاقی می افتد؟ هنوز هم به نظر می رسد بد است

اکنون اجازه می دهد یکی از ابزارهای موجود در جعبه ابزار ما را ببینید و ببینید که آیا آن را می تواند مفید باشد در اینجا: نوع کوک.

Type Coercion

نوع اجبار یک ویژگی است که به ما امکان تبدیل یک متغیر از یک نوع به دیگری به صورت پویا تحت شرایط خاص است.

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

تبدیل غلط به 0؛

تبدیل واقعی به 1؛ [19659041] این چگونگی آن در این مثال خاص مفید است:

 رشته  width = '100٪'؛ 
اینتر TOTAL_ELEMENTS = FIRST_ELEMENT + SECOND_ELEMENT + THIRD_ELEMENT؛

if TOTAL_ELEMENTS == 2) {
width = '50٪ '؛
}

if (TOTAL_ELEMENTS == 3) {
width = '33٪'؛
}

قابلیت خوانایی به طور قابل توجهی بهبود یافته است

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

بر خلاف قانون Betteridge از سرفصلها، این را نمی توان با کلمه "نه" پاسخ داد.