{"id":1348,"date":"2022-05-04T10:51:27","date_gmt":"2022-05-04T10:51:27","guid":{"rendered":"https:\/\/bidar.ca\/?p=1348"},"modified":"2022-05-04T10:57:41","modified_gmt":"2022-05-04T10:57:41","slug":"episode34","status":"publish","type":"post","link":"https:\/\/bidar.ca\/2\/fa\/podcasts\/episode34","title":{"rendered":"\u067e\u0627\u062f\u06a9\u0633\u062a34: \u0628\u0631\u0631\u0633\u06cc \u0641\u0635\u0644 16 \u0648 17 \u06a9\u062a\u0627\u0628 \u06a9\u062f \u062a\u0645\u06cc\u0632 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646"},"content":{"rendered":"<p>\u06af\u0641\u062a\u06af\u0648\u06cc \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u0645\u062a\u062e\u0635\u0635\u0627\u0646 \u0635\u0646\u0639\u062a \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u062f\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627: \u0637\u0644\u06cc\u0639\u0647 \u062f\u0648\u0627\u0646\u06cc\u060c \u06cc\u0648\u0633\u0641 \u0639\u0645\u0627\u062f\u06cc\u060c \u0645\u0647\u062f\u06cc \u0634\u06a9\u0648\u0647\u06cc\u060c \u0634\u0631\u06cc\u0641 \u06cc\u0632\u062f\u06cc\u0627\u0646 \u0648 \u0645\u062d\u0645\u062f \u0646\u0627\u062f\u06cc<\/p>\n<p><iframe loading=\"lazy\" title=\"\u067e\u0627\u062f\u06a9\u0633\u062a34: \u0628\u0631\u0631\u0633\u06cc \u0641\u0635\u0644 16 \u0648 17 \u06a9\u062a\u0627\u0628 \u06a9\u062f \u062a\u0645\u06cc\u0632 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/lLB8PP0fTvA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0627\u062f\u06a9\u0633\u062a \u062e\u0644\u0627\u0635\u0647 \u0627\u06cc \u0627\u0632 \u0641\u0635\u0644<\/p>\n<p>16 Refactoring SerialDate<\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 org.jfree.date \u0627\u0632 jfree.org\/jcommon \u0648 \u06a9\u0644\u0627\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 SerialDate \u06a9\u0647 \u062f\u06cc\u0648\u06cc\u062f \u06af\u06cc\u0644\u0628\u0631\u062a \u0646\u0648\u0634\u062a\u0647 \u062a\u0648\u0633\u0637 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646 \u062a\u0645\u06cc\u0632 \u0634\u062f\u0647<\/p>\n<p>\u0641\u0635\u0644 17 Smells and Heuristics<\/p>\n<p>\u0628\u0631\u06af\u0631\u0641\u062a\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628 \u0645\u0627\u0631\u062a\u06cc\u0646 \u0641\u0627\u0648\u0644\u0631 Martin Fowler \u062f\u0631 \u0628\u0647 \u0646\u0627\u0645 Refactoring\u060c \u062e\u06cc\u0644\u06cc \u0627\u0632 Code Smells \u00ab\u06a9\u062f\u0647\u0627\u06cc \u0628\u0648\u062f\u0627\u0631\u00bb \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647\u060c \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u0631\u0627 \u0628\u0647 \u062a\u0641\u0635\u06cc\u0644 \u0634\u0631\u062d \u062f\u0627\u062f\u0647<\/p>\n<p>&nbsp;<\/p>\n<h2>16 Refactoring SerialDate<\/h2>\n<p>\u062f\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 org.jfree.date \u0627\u0632 http:\/\/www.jfree.org\/jcommon\/index.php<br \/>\n\u06a9\u0644\u0627\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 SerialDate \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0647 \u06a9\u0647 \u062f\u06cc\u0648\u06cc\u062f \u06af\u06cc\u0644\u0628\u0631\u062a \u0646\u0648\u0634\u062a\u0647<br \/>\n\u0642\u0631\u0627\u0631\u0647 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646 \u0627\u0648\u0646 \u0648\u0631 \u0632\u06cc\u0631 \u0630\u0631\u0647 \u0628\u06cc\u0646 \u0628\u0630\u0627\u0631\u0647<\/p>\n<p>\u0631\u0627\u0628\u0631\u062a: \u0645\u0646 \u0641\u06a9\u0631 \u0646\u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u062e\u06cc\u0644\u06cc \u0628\u0647\u062a\u0631 \u0627\u0632 \u062f\u06cc\u0648\u06cc\u062f \u0647\u0633\u062a\u0645\u060c \u0642\u0635\u062f \u0628\u062f\u06cc \u0627\u0632 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0627\u06cc\u0646 \u06a9\u062f \u0646\u062f\u0627\u0631\u0645<br \/>\n\u0634\u0645\u0627 \u0647\u0645 \u0645\u06cc\u062a\u0648\u0646\u06cc\u062f \u06a9\u062f \u0645\u0646 \u0631\u0648 \u0632\u06cc\u0631 \u0630\u0631\u0647 \u0628\u06cc\u0646 \u0628\u0630\u0627\u0631\u06cc\u062f \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0628\u0627\u06cc\u062f \u0631\u0627\u062d\u062a \u0628\u0627\u0634\u06cc\u0645 \u0648 \u0628\u0630\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u06a9\u062f\u0645\u0648\u0646 \u0631\u0648 \u062f\u06cc\u06af\u0631\u0627\u0646 \u0628\u0628\u06cc\u0646\u0646\u062f \u0648 \u0646\u0638\u0631\u0634\u0648\u0646 \u0631\u0648 \u0628\u062f\u0646\u062f<br \/>\n\u0645\u0627 \u0647\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0636\u0627\u0648\u062a \u0647\u0627 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0631\u0648 \u06cc\u0627\u062f \u0645\u06cc\u06af\u06cc\u0631\u06cc\u0645 \u060c \u0645\u062b\u0644 \u067e\u0632\u0634\u06a9\u0627 \u060c \u062e\u0644\u0628\u0627\u0646 \u0647\u0627 \u06cc\u0627 \u0648\u06a9\u0644\u0627 \u06a9\u0647 \u0631\u0648\u06cc \u06a9\u0627\u0631\u0634\u0648\u0646 \u0642\u0636\u0627\u0648\u062a \u0645\u06cc\u0634\u0647<br \/>\n\u062f\u06cc\u0648\u06cc\u062f \u0647\u0645 \u062c\u0631\u0627\u062a \u062f\u0627\u0634\u062a\u0647 \u06a9\u0647 \u06a9\u062f\u0634 \u0631\u0648 \u0622\u0632\u0627\u062f \u0628\u0630\u0627\u0631\u0647 \u062a\u0627 \u0647\u0645\u0647 \u0646\u06af\u0627\u0634 \u06a9\u0646\u0646\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0633\u0631\u06cc\u0627\u0644 \u062f\u06cc\u062a \u06a9\u0644\u0627\u0633\u06cc\u0647 \u06a9\u0647 \u062a\u0627\u0631\u06cc\u062e \u0631\u0627 \u062a\u0648 \u062c\u0627\u0648\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647<\/p>\n<p>\u062e\u06cc\u0644\u06cc \u0627\u0632 \u062a\u0633\u062a \u0647\u0627 \u067e\u0627\u0633 \u0645\u06cc\u0634\u0646 \u0648\u0644\u06cc \u0645\u062a\u0623\u0633\u0641\u0627\u0646\u0647 \u06cc\u06a9 \u0646\u06af\u0627\u0647 \u06a9\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0628\u0639\u0636\u06cc \u0627\u0632 \u062a\u0633\u062a \u0647\u0627 \u0631\u0648 \u062c\u0627 \u0627\u0646\u062f\u0627\u062e\u062a\u06cc\u0645<br \/>\n\u0645\u062b\u0644\u0627 \u0628\u0631\u0627\u06cc Find Usages \u062c\u0633\u062a\u062c\u0648 \u0631\u0648\u06cc \u0645\u062a\u062f MonthCodeToQuarter<\/p>\n<p>\u0645\u0646 \u0645\u0637\u0645\u0626\u0646 \u0646\u0628\u0648\u062f\u0645 \u06a9\u0647 \u0686\u0631\u0627 \u0645\u062a\u062f testWeekdayCodeToString \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647<\/p>\n<p>\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a &#8220;Tues&#8221; \u0648 &#8220;Thurs&#8221; \u0628\u0627\u06cc\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062a\u0627\u0628\u0639 stringToMonthCode \u0628\u0627\u06cc\u062f \u062a\u0633\u062a \u0645\u06cc \u0634\u062f<\/p>\n<p>\u0627\u0632 \u0641\u0631\u0645\u062a \u0628\u0646\u062f\u06cc HTML \u062f\u0631 Javadoc \u0686\u0634\u0645 \u067e\u0648\u0634\u06cc \u0645\u06cc \u06a9\u0646\u0645<br \/>\n\u0648\u0644\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0648 \u0631\u0641\u0631\u0646\u0633 \u0647\u0627 \u0627\u0632 \u0686\u0647\u0627\u0631\u062a\u0627 \u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0645\u0646 \u0631\u0648 \u0622\u0632\u0627\u0631 \u0645\u06cc\u062f\u0647 Java, English, Javadoc, and html<\/p>\n<p>\u062e\u0637 86 \u062a\u0639\u0631\u06cc\u0641 \u0647\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0647\u0633\u062a . \u0627\u0635\u0644\u0627 \u0686\u0631\u0627 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 SerialDate \u0646\u0627\u0645 \u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f\u0647\u061f<br \/>\n\u0646\u0634\u0648\u0646\u0647 \u0686\u06cc \u0647\u0633\u062a\u061f<br \/>\nIs it because the class is derived from Serializable?<\/p>\n<p>\u0633\u0631\u0646\u062e \u062f\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0647\u0627\u06cc SERIAL_LOWER_BOUND \u0648 SERIAL_UPPER_BOUND \u062f\u0631 \u062e\u0637 98 \u0648 \u062e\u0637 101.<br \/>\n\u0633\u0631\u0646\u062e \u062d\u062a\u06cc \u0628\u0647\u062a\u0631\u06cc \u0647\u0645 \u0647\u0633\u062a<br \/>\n\u0627\u0633\u0645 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 SerialDate \u0686\u0648\u0646 \u0628\u0627\u06cc\u0647 \u062f\u0648\u0646\u0647 serial number \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0634\u062f\u0647<\/p>\n<p>\u06a9\u0647 \u062a\u0639\u062f\u0627\u062f \u0631\u0648\u0632\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 30 \u062f\u0633\u0627\u0645\u0628\u0631 1899 \u0628\u0647 \u0628\u0639\u062f \u0647\u0633\u062a<\/p>\n<p>\u0645\u0646 \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0648 \u062a\u0627 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0631\u0645. \u0627\u0648\u0644\u0627\u064b\u060c \u0639\u0628\u0627\u0631\u062a \u00ab serial number \u00bb \u0648\u0627\u0642\u0639\u0627\u064b \u0635\u062d\u06cc\u062d \u0646\u06cc\u0633\u062a.<br \/>\n\u0645\u0634\u06a9\u0644 \u062f\u0648\u0645 \u0645\u0647\u0645\u062a\u0631\u0647<br \/>\n\u0627\u0633\u0645 SerialDate \u0628\u0647 \u0645\u0639\u0646\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc\u0647<br \/>\n\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc\u0647 \u0627\u0635\u0644\u0627\u064b \u0646\u06cc\u0627\u0632\u06cc \u0646\u06cc\u0633\u062a \u06a9\u0647 \u0628\u0647 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0634\u0627\u0631\u0647 \u0628\u0634\u0647<br \/>\n\u0645\u0646 DayDate \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0627\u0633\u0645 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0645.<br \/>\n\u06a9\u0644\u0627\u0633 DayDate \u0627\u0632 Comparable \u0648 Serializable \u0627\u0631\u062b \u0628\u0631\u06cc \u0645\u06cc \u06a9\u0646\u0647<br \/>\n\u0648\u0644\u06cc \u0686\u0631\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0632 MonthConstants \u0627\u0631\u062b \u0628\u0631\u06cc \u0645\u06cc\u06a9\u0646\u0647\u061f<\/p>\n<p>\u0641\u0642\u0637 \u06cc\u06a9 \u062f\u0633\u062a\u0647 \u0627\u06cc \u0627\u0632 \u062a\u0639\u0631\u06cc\u0641 \u062b\u0627\u0628\u062a \u0645\u0627\u0647 \u0647\u0627 \u0627\u0633\u062a \u06a9\u0647 \u0639\u062f\u062f\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0627\u0647 \u06cc\u06a9 int \u0645\u06cc \u06af\u0631\u0641\u062a<br \/>\n\u0628\u0639\u062f \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0646 \u06cc\u06a9 \u0645\u0627\u0647 \u0634\u0645\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0647 \u06cc\u0639\u0646\u06cc \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0631\u0648\u0634 isValidMonthCode \u062e\u0644\u0627\u0635 \u0634\u0648\u06cc\u0645 \u0648 \u0628\u0631\u0631\u0633\u06cc \u062e\u0637\u0627\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0645\u0627\u0647 \u0645\u0627\u0646\u0646\u062f \u06a9\u0647 \u062f\u0631 monthCodeToQuarter \u0631\u0648 \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645<\/p>\n<p>\u0628\u0639\u062f\u060c \u0645\u0627 \u062a\u0648 \u062e\u0637 91\u060c serialVersionUID \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645.\u06a9\u0647 \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0633\u0631\u06cc\u0627\u0644 \u0633\u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0647<br \/>\n\u0627\u06af\u0631 \u0627\u0648\u0646 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u062f\u06cc\u0645\u060c \u0647\u0631 DayDate \u06a9\u0647 \u0628\u0627 \u0646\u0633\u062e\u0647 \u0642\u062f\u06cc\u0645\u06cc\u200c\u062a\u0631 \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u062f\u06cc\u06af\u0647 \u06a9\u0627\u0631 \u0646\u0645\u06cc \u06a9\u0646\u0647 \u0648 \u0645\u0646\u062c\u0631 \u0628\u0647 InvalidClassException \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>&#8230; \u062f\u0631\u062f\u0633\u0631 \u0647\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0627\u0631\u06cc\u062e \u0647\u0627 \u0628\u0647 \u0627\u06a9\u0633\u0644 &#8230;<br \/>\n\u0633\u0647 \u062a\u0627\u0628\u0639\u060c getPreviousDayOfWeek\u060c getNearestDayOfWeek \u06cc\u0627 getFollowingDayOfWeek \u062f\u0627\u0631\u06cc\u0645<br \/>\n\u06a9\u0647 \u0628\u0627 createInstance \u0645\u06cc\u062a\u0648\u0646\u06cc\u0645 \u0628\u0631\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc\u0634 \u06a9\u0646\u06cc\u0645<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0645\u062a\u062f\u0647\u0627\u06cc createInstance \u0631\u0627 \u0628\u0627 \u0645\u062a\u062f\u0647\u0627\u06cc makeDate \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0633\u0645\u0634 \u06a9\u0645\u06cc \u0628\u0647\u0628\u0648\u062f \u067e\u06cc\u062f\u0627 \u0645\u06cc \u06a9\u0646\u0647<\/p>\n<p>\u0645\u062a\u062f \u0647\u0627 \u0627\u0632 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 SINGLETON\u060c 4 DECORATOR\u060c 5 \u0648 Abstract Factory \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f.<br \/>\n\u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f.<br \/>\nSpreadsheetDateFactory \u0634\u0628\u06cc\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8212;&#8212;<\/p>\n<p>&nbsp;<\/p>\n<h2>Smells and Heuristics<br \/>\n\u0627\u0633\u062a\u0634\u0645\u0627\u0645 \u0648 \u0627\u06a9\u062a\u0634\u0627\u0641\u0627\u062a<\/h2>\n<p>\u0645\u0627\u0631\u062a\u06cc\u0646 \u0641\u0627\u0648\u0644\u0631 Martin Fowler \u062f\u0631 \u06a9\u062a\u0627\u0628 \u0641\u0648\u0642\u200c\u0627\u0644\u0639\u0627\u062f\u0647\u200c \u0639\u0627\u0644\u06cc \u0627\u0634 \u0628\u0647 \u0646\u0627\u0645 Refactoring\u060c \u062e\u06cc\u0644\u06cc \u0627\u0632 Code Smells \u00ab\u06a9\u062f\u0647\u0627\u06cc \u0628\u0648\u062f\u0627\u0631\u00bb \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647.<\/p>\n<p>\u0644\u06cc\u0633\u062a\u06cc \u06a9\u0647 \u0627\u06cc\u0646\u062c\u0627 \u0622\u0648\u0631\u0645 \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0634\u0645\u0627\u0645 \u0645\u0627\u0631\u062a\u06cc\u0646 \u0641\u0627\u0648\u0644\u0631 \u0627\u0633\u062a \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0633\u0627\u06cc\u0631 \u0627\u06a9\u062a\u0634\u0627\u0641\u0627\u062a\u06cc \u06a9\u0647 \u0645\u0646 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u062a\u062c\u0627\u0631\u06cc \u062e\u0648\u062f\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645.<\/p>\n<p>1. [Refactoring].<\/p>\n<p>\u062f\u0631 \u062d\u06cc\u0646 \u0628\u0627\u0632\u0646\u06af\u0631\u06cc \u0648 \u0627\u0646\u062c\u0627\u0645 \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u060c \u0627\u0632 \u062e\u0648\u062f\u0645 \u067e\u0631\u0633\u06cc\u062f\u0645 \u06a9\u0647 \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0645 \u0648 \u0628\u0639\u062f\u0634 \u062f\u0644\u06cc\u0644\u0634 \u0631\u0648 \u0647\u0645 \u0646\u0648\u0634\u062a\u0645.<br \/>\n\u0646\u062a\u06cc\u062c\u0647 \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u0646\u0633\u0628\u062a\u0627 \u0637\u0648\u0644\u0627\u0646\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0634\u062f \u06a9\u0647 \u0628\u062f\u0648\u0646\u0645 \u0686\u0631\u0627 \u0648\u0642\u062a\u06cc \u06a9\u062f \u0631\u0627 \u0645\u06cc \u062e\u0648\u0646\u0645 \u0628\u0648\u06cc \u0628\u062f\u06cc \u0628\u0647 \u0645\u0646 \u0645\u06cc\u062f\u0647.<br \/>\n\u0627\u06cc\u0646 \u0644\u06cc\u0633\u062a \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u0628\u0627\u0644\u0627 \u0628\u0647 \u067e\u0627\u06cc\u06cc\u0646 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0631\u062c\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0647\u0631 \u0627\u06a9\u062a\u0634\u0627\u0641\u06cc \u06cc\u06a9 \u0631\u0641\u0631\u0646\u0633 \u0645\u062a\u0642\u0627\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u062f\u0631 &#8220;\u067e\u06cc\u0648\u0633\u062a C&#8221; \u0628\u0647 \u06a9\u062c\u0627 \u0627\u0631\u062c\u0627\u0639 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>C1: \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0627\u0645\u0646\u0627\u0633\u0628 Inappropriate Information<br \/>\nC2: \u06a9\u0627\u0645\u0646\u062a \u0645\u0646\u0633\u0648\u062e Obsolete Comment<br \/>\nC3: \u0646\u0638\u0631 \u0627\u0636\u0627\u0641\u06cc Redundant Comment<br \/>\nC4: \u0646\u0638\u0631 \u0628\u062f \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a Poorly Written Comment<br \/>\nC5: \u06a9\u062f \u06a9\u0627\u0645\u0646\u062a \u0634\u062f\u0647 Commented-Out Code ( \u06a9\u062f\u06cc \u06a9\u0647 \u06a9\u0627\u0645\u0646\u062a \u0634\u062f\u0647 \u06cc\u06a9 \u06a9\u0627\u0631 \u0632\u0634\u062a\u0647 .)<\/p>\n<p>\u0645\u062d\u06cc\u0637 Environment<br \/>\nE1: \u0648\u0642\u062a\u06cc \u06a9\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u06cc\u06a9 \u0645\u0631\u062d\u0644\u0647 \u0628\u0631\u0627\u06cc Build \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645<br \/>\nE2: \u0648\u0642\u062a\u06cc \u062a\u0633\u062a \u0647\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u06cc\u06a9 \u0645\u0631\u062d\u0644\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f ( \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0645\u0627\u0645 \u06cc\u0648\u0646\u06cc\u062a \u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u062a\u0646\u0647\u0627 \u0628\u0627 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 )<br \/>\n\u062f\u0631 \u0628\u0647\u062a\u0631\u06cc\u0646 \u062d\u0627\u0644\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u062f\u06a9\u0645\u0647 \u062f\u0631 IDE \u062a\u0645\u0627\u0645 \u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<br \/>\n\u062f\u0631 \u0628\u062f\u062a\u0631\u06cc\u0646 \u062d\u0627\u0644\u062a \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646 \u0633\u0627\u062f\u0647 \u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u062c\u0631\u0627\u06cc \u062a\u0645\u0627\u0645 \u062a\u0633\u062a \u0647\u0627 \u0622\u0646\u0642\u062f\u0631 \u0627\u0633\u0627\u0633\u06cc \u0648 \u0645\u0647\u0645\u0647 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0633\u0631\u06cc\u0639\u060c \u0622\u0633\u0627\u0646 \u0648 \u0648\u0627\u0636\u062d \u0628\u0627\u0634\u0647.<\/p>\n<p>\u062a\u0648\u0627\u0628\u0639<br \/>\nF1: \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0632\u06cc\u0627\u062f Too Many Arguments<br \/>\nF2: \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc Output Arguments \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0648\u0627\u0642\u0639\u0627 \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u062f\u0631\u06a9 \u0647\u0633\u062a\u0646\u062f. \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627\u0634\u0646\u062f\u060c \u0646\u0647 \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 .<br \/>\nF3: \u0646\u0634\u0648\u0646\u0647 \u06af\u0630\u0627\u0631\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 Flag Arguments ( \u0645\u062b\u0644\u0627 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc \u0628\u0648\u0644\u06cc \u0628\u0627 \u0635\u062f\u0627\u06cc \u0628\u0644\u0646\u062f \u0627\u0639\u0644\u0627\u0645 \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u062a\u0627\u0628\u0639 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f. )<br \/>\nF4: \u062a\u0627\u0628\u0639 \u0645\u0631\u062f\u0647 Dead Function<\/p>\n<p>\u06a9\u0644\u06cc<br \/>\nG1: \u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0646\u0628\u0639 Multiple Languages in One Source File<br \/>\n\u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u062f\u0631\u0646 \u0627\u0645\u0631\u0648\u0632\u06cc \u0627\u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0648\u0631\u0633 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0646\u0628\u0639 \u062c\u0627\u0648\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062d\u0627\u0648\u06cc \u0642\u0637\u0639\u0627\u062a\u06cc \u0627\u0632 XML\u060c HTML\u060c YAML\u060c JavaDoc\u060c \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc\u060c \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0648 \u063a\u06cc\u0631\u0647 \u0628\u0627\u0634\u062f.<br \/>\n\u0627\u06cc\u062f\u0647 \u0622\u0644 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0648\u0631\u0633 \u0641\u0642\u0637 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<br \/>\n\u0645\u06cc\u062f\u0648\u0646\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639\u06cc\u062a\u060c \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645. \u0627\u0645\u0627 \u0647\u0631 \u0686\u06cc \u062d\u062f\u0627\u0642\u0644 \u0628\u0627\u0634\u0647 \u0628\u0647\u062a\u0631\u0647<br \/>\nG2: \u06a9\u0627\u0631 \u0648\u0627\u0636\u062d\u06cc \u0647\u0646\u0648\u0632 \u0627\u062c\u0631\u0627 \u0646\u0634\u062f\u0647 Obvious Behavior Is Unimplemented<br \/>\n\u0628\u0627 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u00ab\u0627\u0635\u0644 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u063a\u0627\u0641\u0644\u06af\u06cc\u0631\u06cc\u00bb \u0647\u0631 \u062a\u0627\u0628\u0639 \u06cc\u0627 \u06a9\u0644\u0627\u0633 \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0647 \u0637\u0648\u0631 \u0645\u0646\u0637\u0642\u06cc \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0646\u0627\u0645 \u06cc\u06a9 \u0631\u0648\u0632 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 enum \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0631\u0648\u0632 \u0627\u0633\u062a<\/p>\n<p>G3: \u0631\u0641\u062a\u0627\u0631 \u0646\u0627\u062f\u0631\u0633\u062a \u062f\u0631 \u0634\u0631\u0627\u06cc\u0637 \u0645\u0631\u0632\u06cc Incorrect Behavior at the Boundaries<br \/>\nG4: \u0627\u06cc\u0645\u0646\u06cc \u0647\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 Overridden Safeties \u0628\u0627 \u0645\u062b\u0627\u0644 \u0686\u0631\u0646\u0648\u0628\u06cc\u0644<br \/>\nG5: \u062a\u06a9\u0631\u0627\u0631 Duplication \u0627\u0635\u0644 DRY3 (\u062e\u0648\u062f\u062a \u0631\u0627 \u062a\u06a9\u0631\u0627\u0631 \u0646\u06a9\u0646)<br \/>\nG6: \u06a9\u062f \u062f\u0631 \u0633\u0637\u062d \u0646\u0627\u062f\u0631\u0633\u062a \u0627\u0628\u0633\u062a\u0631\u06a9\u0634\u0646 Code at Wrong Level of Abstraction<br \/>\nG7: Base Classes Depending on Their Derivatives<br \/>\nG8: Too Much Information<br \/>\nG9: Dead Code<br \/>\nG10: Vertical Separation<br \/>\nG11: \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631\u06ccInconsistency<br \/>\nG12: Clutter<br \/>\nG13: Artificial Coupling<br \/>\nG14: Feature Envy<br \/>\nG15: Selector Arguments<br \/>\nG16: Obscured Intent<br \/>\nG17: Misplaced Responsibility<br \/>\nG18: Inappropriate Static<br \/>\nG19: Use Explanatory Variables<br \/>\nG20: Function Names Should Say What They Do<br \/>\nG21: Understand the Algorithm<br \/>\nG22: Make Logical Dependencies Physical<br \/>\nG23: Prefer Polymorphism to If\/Else or Switch\/Case<br \/>\nG24: Follow Standard Conventions<br \/>\nG25: Replace Magic Numbers with Named Constants<br \/>\nG26: Be Precise<br \/>\nG27: Structure over Convention<br \/>\nG28: Encapsulate Conditionals<br \/>\nG29: Avoid Negative Conditionals<br \/>\nG30: Functions Should Do One Thing<br \/>\nG31: Hidden Temporal Couplings<br \/>\nG32: Don\u2019t Be Arbitrary<br \/>\nG33: Encapsulate Boundary Conditions<br \/>\nG34: Functions Should Descend Only<br \/>\nOne Level of Abstraction<br \/>\nG35: Keep Configurable Data at High Levels<br \/>\nG36: Avoid Transitive Navigation.<\/p>\n<p>Java<br \/>\nJ1: Avoid Long Import Lists by Using Wildcard<br \/>\nJ2: Don\u2019t Inherit Constants<br \/>\nJ3: Constants versus Enums<\/p>\n<p>Names<br \/>\nN1: Choose Descriptive Names<br \/>\nN2: Choose Names at the Appropriate Level of Abstraction<br \/>\nN3: Use Standard Nomenclature Where Possible<br \/>\nN4: Unambiguous Names<br \/>\nN5: Use Long Names for Long Scopes<br \/>\nN6: Avoid Encodings<br \/>\nN7: Names Should Describe Side-Effects<br \/>\nTests<br \/>\nT1: Insufficient Tests<br \/>\nT2: Use a Coverage Tool!<br \/>\nT3: Don\u2019t Skip Trivial Tests<br \/>\nT4: An Ignored Test Is a Question about an Ambiguity<br \/>\nT5: Test Boundary Conditions<br \/>\nT6: Exhaustively Test Near Bugs<br \/>\nT7: Patterns of Failure Are Revealing<br \/>\nT8: Test Coverage Patterns Can Be Revealing<br \/>\nT9: Tests Should Be Fast<br \/>\nConclusion<\/p>\n<p>G8: \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f<br \/>\nG9: \u06a9\u062f \u0645\u0631\u062f\u0647<br \/>\nG10: \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0639\u0645\u0648\u062f\u06cc 292<br \/>\nG11: \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631\u06cc 0.292<br \/>\nG12: Clutter293<br \/>\nG13: \u06a9\u0648\u067e\u0644\u06cc\u0646\u06af \u0645\u0635\u0646\u0648\u0639\u06cc.293<br \/>\nG14: \u0648\u06cc\u0698\u06af\u06cc Envy293<br \/>\nG15: Arguments Selector294<br \/>\nG16: Obscured Intent .295<br \/>\nG17: \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0646\u0627\u0628\u062c\u0627.295<br \/>\nG18: \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0646\u0627\u0645\u0646\u0627\u0633\u0628.296<br \/>\nG19: \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d\u06cc 296 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<br \/>\nG20: \u0646\u0627\u0645 \u062a\u0648\u0627\u0628\u0639 \u0628\u0627\u06cc\u062f \u0628\u06cc\u0627\u0646 \u06a9\u0646\u0646\u062f \u06a9\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u0646\u062f 297<br \/>\nG21: \u062f\u0631\u06a9 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 .297<br \/>\nG22: \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0645\u0646\u0637\u0642\u06cc \u0631\u0627 \u0641\u06cc\u0632\u06cc\u06a9\u06cc \u06a9\u0646\u06cc\u062f.298<br \/>\nG23: \u062a\u0631\u062c\u06cc\u062d \u0686\u0646\u062f \u0634\u06a9\u0644\u06cc \u0628\u0647 If\/Else \u06cc\u0627 Switch\/Case 299<br \/>\nG24: \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0646\u06cc\u062f299<br \/>\nG25: \u0627\u0639\u062f\u0627\u062f \u062c\u0627\u062f\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u062b\u0627\u0628\u062a300 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f<br \/>\nG26: \u062f\u0642\u06cc\u0642 \u0628\u0627\u0634\u06cc\u062f301<br \/>\nG27: Structure over Convention.301<br \/>\nG28: Conditionals 0.301 \u0631\u0627 \u06a9\u067e\u0633\u0648\u0644\u0647 \u06a9\u0646\u06cc\u062f<br \/>\nG29: \u0627\u062c\u062a\u0646\u0627\u0628 \u0627\u0632 \u0634\u0631\u0627\u06cc\u0637 \u0645\u0646\u0641\u06cc.302<br \/>\nG30: \u062a\u0648\u0627\u0628\u0639 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f. 302<br \/>\nG31: \u06a9\u0648\u067e\u0644\u06cc\u0646\u06af \u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u067e\u0646\u0647\u0627\u0646302<br \/>\nG32: Don&#8217;t Be Arbitrary.303<br \/>\nG33: \u0627\u062d\u0627\u0637\u0647 \u06a9\u0631\u062f\u0646 \u0634\u0631\u0627\u06cc\u0637 \u0645\u0631\u0632\u06cc304<br \/>\nG34: \u062a\u0648\u0627\u0628\u0639 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0646\u0632\u0648\u0644 \u06a9\u0646\u0646\u062f<br \/>\nOne Level of Abstraction 304<br \/>\nG35: \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0631\u0627 \u062f\u0631 \u0633\u0637\u0648\u062d \u0628\u0627\u0644\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f306<br \/>\nG36: \u0627\u062c\u062a\u0646\u0627\u0628 \u0627\u0632 \u0646\u0627\u0648\u0628\u0631\u06cc \u06af\u0630\u0631\u0627.30<br \/>\n\u062c\u0627\u0648\u0627 .307<br \/>\nJ1: \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Wildcards307 \u0627\u0632 \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0627\u0631\u062f\u0627\u062a\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f<br \/>\nJ2: \u062b\u0627\u0628\u062a 307 \u0631\u0627 \u0628\u0647 \u0627\u0631\u062b \u0646\u0628\u0631\u06cc\u062f<br \/>\nJ3: Constants \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 Enums.308<br \/>\n\u0646\u0627\u0645 \u0647\u0627.309<br \/>\nN1: \u0646\u0627\u0645\u0647\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641\u06cc309 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<br \/>\nN2: \u0646\u0627\u0645\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0633\u0637\u062d \u0645\u0646\u0627\u0633\u0628 Abstraction311 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<br \/>\nN3: \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646 \u0627\u0632 \u0646\u0627\u0645\u06af\u0630\u0627\u0631\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.311<br \/>\nN4: \u0646\u0627\u0645\u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0627\u0628\u0647\u0627\u0645.312<br \/>\nN5: \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc Long Scopes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.312<br \/>\nN6: \u0627\u0632 Encodings312 \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f<br \/>\nN7: \u0646\u0627\u0645 \u0647\u0627 \u0628\u0627\u06cc\u062f \u0639\u0648\u0627\u0631\u0636 \u062c\u0627\u0646\u0628\u06cc \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u06a9\u0646\u0646\u062f. .313<br \/>\n\u062a\u0633\u062a \u0647\u0627313<br \/>\nT1: \u062a\u0633\u062a \u0647\u0627\u06cc \u0646\u0627\u06a9\u0627\u0641\u06cc.313<br \/>\nT2: \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u067e\u0648\u0634\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f!.313<br \/>\nT3: \u062a\u0633\u062a \u0647\u0627\u06cc \u0628\u06cc \u0627\u0647\u0645\u06cc\u062a 313 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0646\u06af\u06cc\u0631\u06cc\u062f<br \/>\nT4: \u06cc\u06a9 \u062a\u0633\u062a \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u06cc\u06a9 \u0633\u0648\u0627\u0644 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u0628\u0647\u0627\u0645 \u0627\u0633\u062a313<br \/>\nT5: \u0634\u0631\u0627\u06cc\u0637 \u0645\u0631\u0632\u06cc \u0622\u0632\u0645\u0648\u0646314<br \/>\nT6: \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 Near Bugs314 \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<br \/>\nT7: \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0634\u06a9\u0633\u062a \u0622\u0634\u06a9\u0627\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f 314<br \/>\nT8: \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u067e\u0648\u0634\u0634 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0622\u0634\u06a9\u0627\u0631 \u0634\u0648\u0646\u062f 0.314<br \/>\nT9: \u062a\u0633\u062a \u0647\u0627 \u0628\u0627\u06cc\u062f \u0633\u0631\u06cc\u0639 \u0628\u0627\u0634\u0646\u062f.314<br \/>\n\u0646\u062a\u06cc\u062c\u0647 314<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u06af\u0641\u062a\u06af\u0648\u06cc \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u0645\u062a\u062e\u0635\u0635\u0627\u0646 \u0635\u0646\u0639\u062a \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u062f\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627: \u0637\u0644\u06cc\u0639\u0647 \u062f\u0648\u0627\u0646\u06cc\u060c \u06cc\u0648\u0633\u0641 \u0639\u0645\u0627\u062f\u06cc\u060c \u0645\u0647\u062f\u06cc \u0634\u06a9\u0648\u0647\u06cc\u060c \u0634\u0631\u06cc\u0641 \u06cc\u0632\u062f\u06cc\u0627\u0646 \u0648 \u0645\u062d\u0645\u062f \u0646\u0627\u062f\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0627\u062f\u06a9\u0633\u062a \u062e\u0644\u0627\u0635\u0647 \u0627\u06cc \u0627\u0632 \u0641\u0635\u0644 16 Refactoring SerialDate \u0628\u0631\u0631\u0633\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 org.jfree.date \u0627\u0632 jfree.org\/jcommon \u0648 \u06a9\u0644\u0627\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 SerialDate \u06a9\u0647 \u062f\u06cc\u0648\u06cc\u062f \u06af\u06cc\u0644\u0628\u0631\u062a \u0646\u0648\u0634\u062a\u0647 \u062a\u0648\u0633\u0637 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646 \u062a\u0645\u06cc\u0632 \u0634\u062f\u0647 \u0641\u0635\u0644 17 Smells and Heuristics \u0628\u0631\u06af\u0631\u0641\u062a\u0647 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1349,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"episode_type":"audio","audio_file":"https:\/\/radio.bidar.ca\/2022\/radiobidar-ep34.mp3","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"71.65M","filesize_raw":"75129146","date_recorded":"2022-05-04 10:51:27","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[95],"tags":[675,110,107,108,224,230],"series":[143],"class_list":["post-1348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-podcasts","tag-675","tag-110","tag-107","tag-108","tag-224","tag-230","series-143"],"episode_featured_image":"https:\/\/bidar.ca\/2\/wp-content\/uploads\/2022\/05\/ep34-radiobidar-poster.png","episode_player_image":"https:\/\/bidar.ca\/2\/wp-content\/plugins\/seriously-simple-podcasting\/assets\/images\/no-album-art.png","download_link":"https:\/\/bidar.ca\/2\/podcast-download\/1348\/episode34","player_link":"https:\/\/bidar.ca\/2\/podcast-player\/1348\/episode34","audio_player":"<a class=\"wp-embedded-audio\" href=\"https:\/\/bidar.ca\/2\/podcast-player\/1348\/episode34\">https:\/\/bidar.ca\/2\/podcast-player\/1348\/episode34<\/a>","episode_data":{"playerMode":"dark","subscribeUrls":{"amazon":{"key":"amazon","url":"","label":"Amazon","class":"amazon","icon":"amazon.png"},"apple_podcasts":{"key":"apple_podcasts","url":"","label":"Apple Podcasts","class":"apple_podcasts","icon":"apple-podcasts.png"},"castbox":{"key":"castbox","url":"","label":"CastBox","class":"castbox","icon":"castbox.png"},"google_podcasts":{"key":"google_podcasts","url":"","label":"Google Podcasts","class":"google_podcasts","icon":"google-podcasts.png"},"patreon":{"key":"patreon","url":"","label":"Patreon","class":"patreon","icon":"patreon.png"},"player_fm":{"key":"player_fm","url":"","label":"Player.fm","class":"player_fm","icon":"player-fm.png"},"podchaser":{"key":"podchaser","url":"","label":"Podchaser","class":"podchaser","icon":"podchaser.png"},"rss":{"key":"rss","url":"","label":"RSS","class":"rss","icon":"rss.png"},"rssradio":{"key":"rssradio","url":"","label":"RSSRadio","class":"rssradio","icon":"rssradio.png"},"radio_public":{"key":"radio_public","url":"","label":"Radio Public","class":"radio_public","icon":"radio-public.png"},"radio_com":{"key":"radio_com","url":"","label":"Radio.com","class":"radio_com","icon":"radio-com.png"},"soundcloud":{"key":"soundcloud","url":"","label":"SoundCloud","class":"soundcloud","icon":"soundcloud.png"},"spotify":{"key":"spotify","url":"","label":"Spotify","class":"spotify","icon":"spotify.png"},"stitcher":{"key":"stitcher","url":"","label":"Stitcher","class":"stitcher","icon":"stitcher.png"},"youtube":{"key":"youtube","url":"","label":"YouTube","class":"youtube","icon":"youtube.png"},"itunes":{"key":"itunes","url":"","label":"iTunes","class":"itunes","icon":"itunes.png"}},"rssFeedUrl":"https:\/\/bidar.ca\/2\/feed\/podcast\/2021","embedCode":"<blockquote class=\"wp-embedded-content\" data-secret=\"VVQRMhjXUU\"><a href=\"https:\/\/bidar.ca\/2\/fa\/podcasts\/episode34\">\u067e\u0627\u062f\u06a9\u0633\u062a34: \u0628\u0631\u0631\u0633\u06cc \u0641\u0635\u0644 16 \u0648 17 \u06a9\u062a\u0627\u0628 \u06a9\u062f \u062a\u0645\u06cc\u0632 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/bidar.ca\/2\/fa\/podcasts\/episode34\/embed#?secret=VVQRMhjXUU\" width=\"500\" height=\"350\" title=\"&#8220;\u067e\u0627\u062f\u06a9\u0633\u062a34: \u0628\u0631\u0631\u0633\u06cc \u0641\u0635\u0644 16 \u0648 17 \u06a9\u062a\u0627\u0628 \u06a9\u062f \u062a\u0645\u06cc\u0632 \u0631\u0627\u0628\u0631\u062a \u0645\u0627\u0631\u062a\u06cc\u0646&#8221; &#8212; BIDAR.ca\" data-secret=\"VVQRMhjXUU\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/bidar.ca\/2\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n"},"_links":{"self":[{"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/posts\/1348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/comments?post=1348"}],"version-history":[{"count":3,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/posts\/1348\/revisions"}],"predecessor-version":[{"id":1352,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/posts\/1348\/revisions\/1352"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/media\/1349"}],"wp:attachment":[{"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/media?parent=1348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/categories?post=1348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/tags?post=1348"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bidar.ca\/2\/wp-json\/wp\/v2\/series?post=1348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}