دانلود کتاب Fundamentals of OOP and Data Structures in Java
49,000 تومان
مبانی OOP و ساختارهای داده در جاوا
| موضوع اصلی | الگوریتم ها و ساختارهای داده |
|---|---|
| نوع کالا | کتاب الکترونیکی |
| ناشر | Cambridge University Press |
| تعداد صفحه | 463 |
| حجم فایل | 11 مگابایت |
| کد کتاب | 9780521662208,0521662206 |
| نویسنده | Lewis J. Pinson, Richard Wiener |
|---|---|
| زبان | انگلیسی |
| فرمت | |
| سال انتشار | 2000 |
جدول کد تخفیف
| تعداد کتاب | درصد تخفیف | قیمت کتاب |
| 1 | بدون تخفیف | 25,000 تومان |
| 2 | 20 درصد | 20,000 تومان |
| 3 الی 5 | 25 درصد | 18,750 تومان |
| 6 الی 10 | 30 درصد | 17,500 تومان |
| 11 الی 20 | 35 درصد | 16,250 تومان |
| 21 الی 30 | 40 درصد | 15,000 تومان |
| 31 الی 40 | 45 درصد | 13,750 تومان |
| 41 الی 50 | 50 درصد | 12,500 تومان |
| 51 الی 70 | 55 درصد | 11,250 تومان |
| 71 الی 100 | 60 درصد | 10,000 تومان |
| 101 الی 150 | 65 درصد | 8,750 تومان |
| 151 الی 200 | 70 درصد | 7,500 تومان |
| 201 الی 300 | 75 درصد | 6,250 تومان |
| 301 الی 500 | 80 درصد | 5,000 تومان |
| 501 الی 1000 | 85 درصد | 3,750 تومان |
| 1001 الی 10000 | 90 درصد | 2,500 تومان |
ترجمه فارسی توضیحات (ترجمه ماشینی)
مبانی OOP و ساختارهای داده در جاوا
پس از خواندن سه فصل اول، باید به این نتیجه رسیدم که کتاب برای استفاده بسیار قدیمی است. در اینجا به برخی از مشکلات آن اشاره می کنیم:
(1) کتاب و داوران قبلی در مورد کدهایی صحبت می کنند که می توانند از وب سایت ناشر دانلود شوند. ناشر دیگر چنین دانلودهایی را در دسترس قرار نمی دهد.
(2) با توجه به روشهای طراحی نرمافزار، نویسنده «طراحی با قرارداد» را که برتراند مایر در سال 1997 در «ساخت نرمافزار شیگرا» از آن حمایت کرد، میپذیرد. این رویکرد تقریباً کنار گذاشته شده است، و “الگوها” رویکردی است که در حال حاضر تبلیغ می شود. نویسنده همچنین به یک روش طراحی پایبند است که پیام های شی را به شدت به عنوان دستور (روش هایی که حالت داخلی شی را تغییر می دهند) یا پرس و جو (روش هایی که وضعیت داخلی شی را گزارش می دهند) طبقه بندی می کند. هنگامی که زمان اجرای پشته ها فرا رسید، این پایبندی سخت او را در یک معضل قرار داد. به طور سنتی “popping” یک پشته منجر به هر دو موقعیت می شود: بالاترین مقدار توسط pop (مانند یک پرس و جو) برگردانده می شود و وضعیت داخلی پشته تغییر می کند (مانند یک دستور). برای پایبندی به دوگانگی فرمان/پرس و جو، نویسنده پاپ کردن را دو فرآیندی ساخته است. “Pop” وضعیت داخلی پشته را تغییر می دهد، بالاترین عنصر را در یک میدان داخلی ذخیره می کند و اندازه پشته را یک بار کاهش می دهد. با این حال، به منظور محدود کردن ظاهر شدن به وضعیت “فرمان”، بالاترین مقدار به کد فراخوانی گزارش نمی شود. درعوض، کاربر باید یک “پرس و جو” بعدی را صادر کند و مقدار بالاترین عنصر را درخواست کند. این پیاده سازی از تأثیری که چنین فرآیند دو مرحله ای در یک محیط رشته ای خواهد داشت غافل است. اگر thread_2 پس از باز شدن thread_1 فرمان pop صادر کند، اما قبل از پرس و جوی thread_1 برای بالاترین مقدار، بالاترین عنصر برای همیشه از بین خواهد رفت.
(3) نویسنده از کلاس های جاوا استفاده می کند که از آن زمان منسوخ شده اند. به عنوان مثال او از کلاس Vector استفاده می کند که کم و بیش با ArrayList جایگزین شده است.
(4) قرارداد نویسنده برای نامگذاری روشها با قراردادهای رایج فعلی همخوانی ندارد. او برای «فرمانها» از کلمات عملی مختلف و به دنبال آن یک اسم استفاده میکند که میدانی را که تحت تأثیر فرمان قرار میگیرد، توصیف میکند. برای “پرس و جوها” او نام را به یک اسم یا عبارت اسمی محدود می کند که مقدار فیلدی که برگردانده می شود را توصیف می کند. با این حال، اکنون بیشتر دیده میشود که «فرمانهایی» با نام «setField()» و «پرسوجوها» با نام «getField()» را ببینیم. بسیاری از IDE ها به طور خودکار نام روش ها را با استفاده از قرارداد نامگذاری “set” و “get” ایجاد می کنند.
به این دلایل دیگر نمی توانم کتاب را توصیه کنم.
After reading the first three chapters, I had to conclude that the book was too dated to use. Here are some of its problems:
(1) The book and previous reviewers speak of code that can be downloaded from the publisher’s web site; the publisher no longer makes such downloads available.
(2) With respect to software design methodologies, the author embraces “design by contract” which was championed by Bertrand Meyer in 1997 in “Object-Oriented Software Construction.” This approach has pretty much been left by the wayside, with “patterns” being the currently touted approach. The author also adheres to a design methodology which rigidly classifies object messages as being either commands (methods that change the internal state of the object) or queries (methods that report back on the object’s internal state). When it was time to implement stacks, this rigid adherence put him in a quandry. Traditionally “popping” a stack results in both situtations: the topmost value is returned by the pop (like a query) and the internal state of the stack is changed (like a command). To adhere to the command/query dichotomy, the author made popping a two-process. “Pop” changes the internal state of the stack, storing the topmost element in an internal field and reducing the size of the stack by one. However in order to restrict popping to “command” status, the topmost value is not reported back to the invoking code. Instead the user has to issue a subsequent “query” requesting the value of the topmost element. This implementation is oblivious to the impact that such a two-step process would have in a threaded environment. If thread_2 issues a pop command after thread_1 pops, but prior to thread_1 querying for the topmost value, the topmost element would be lost forever.
(3) The author makes use of Java classes that have since been deprecated. For instance he uses the Vector class, which has been more or less replaced by ArrayList.
(4) The author’s convention for naming methods isn’t in line with the current, prevailing conventions. For “commands” he uses various action words followed by a noun which describes the field being impacted by the command. For “queries” he restricts the name to a noun or noun phrase which describes the field value that’s being returned. However it is now more common to see “commands” named “setField()” and “queries” named “getField()”. Many IDE’s automatically create method names utilizing the “set” and “get” naming convention.
For these reasons, I can no longer recommend the book.
محصولات مرتبط
دانلود کتاب Algorithmic Game Theory
دانلود کتاب Blockchain for 5G Healthcare Applications: Security and privacy solutions (Healthcare Technologies)
| موضوع اصلی | کامپیوترها - الگوریتم ها و ساختارهای داده |
|---|---|
| نوع کالا | کتاب الکترونیکی |
| ناشر | The Institution of Engineering and Technology |
| تعداد صفحه | 582 |
| حجم فایل | 13.91 مگابایت |
| کد کتاب | 1839533250 , 9781839533259 |
دانلود کتاب Coding Theory – Algorithms, Architectures, and Applications
دانلود کتاب Core Techniques and Algorithms in Game Programming
دانلود کتاب Cryptocurrency: The Ultimate Guide to The World of Cryptocurrency and How I Became a Crypto Millionaire in 6 Months (Bitcoin, Bitcoin Mining, Cryptocurrency trading and Blockchain book)
| موضوع اصلی | کامپیوترها - الگوریتم ها و ساختارهای داده |
|---|---|
| نوع کالا | کتاب الکترونیکی |
| ناشر | Ténzy Publisher |
| حجم فایل | 558 کیلوبایت |
| کد کتاب | 1386482463 , 9781386482468 |

نقد و بررسیها
هنوز بررسیای ثبت نشده است.