Öğrencilerin OOP öğrendiklerinde sorabilecekleri yaygın sorular?
Bu soruyu okumak Yazılım karmaşıklığını yönetmek için gerçekten OO dillerine ihtiyacımız var mı? GD siteleri ve nesne yönelimli kavram öğretirken kendi deneyimleri, örneğin birinde bazıları gerçek pratik öğretme nesne yönelimli kavramları örnek ve (python) programlama merak beni korumuştur ilk OOP öğrenmek zaman genel sorular öğrencilerin isteyebilir ne ?
Örneğin bu soruda yazar sordu,
Ben yeni başlayan bir bilgisayar bilimleri öğrencisiyim ... İlk yarıyılda kapsülleme, veri gizleme, modülerlik gibi OOP kavramlarıyla tanıştık ...
Ancak, modülerlik, kapsülleme, veri gizleme gibi karmaşıklığı yönetmek için kullanılan tüm ilkelerin, prosedürel diller tarafından çok kolay bir şekilde uygulanabileceğini düşünüyorum. Öyleyse karmaşıklığı onsuz yönetebiliyorsak neden gerçekten OOP?
Ayrıca kendi mücadelem olduğunu da itiraf etmeliyim, örneğin bu soruyu sordum OOP ismin önemini aşırı vurguluyor mu ve dolayısıyla eylemi / fiili o sitede de daha az önem konumuna position koyuyor mu (yine de hiçbir öğrenci bana bu soruyu sormadı). Sorum kapatıldı ve hatta 2 silme oyu aldı ama bu her zaman benim endişem.
Eğer javascript tecrübesi olan ve OOP öğrenmeyi seven öğrencilerim veya meslektaşlarım, momentj'leri date-fns ile karşılaştırmalarına her zaman izin vereceğim , hem tarihle ilgileniyor hem de benzer işlevleri sağlıyor, ikisi de iyi iş çıkarıyor, ancak bir OOP kütüphanesi ve tarih-fns bir işlev kitaplığıdır.
Amacım, işleri yapmanın birden fazla yolu olduğunu anlamalarına izin vermek.
Öyleyse öğrencilerinizin sorduğu yaygın sorular nelerdir?
Yanıtlar
Ben en çok sorular etiketli olarak okumak odaklı nesne üzerinde softwareengineering.stackexchange.com ve stackoverflow.com . Yazılım mühendisliği sitesindeki bazı soruların OOP'yi öğrenirken oldukça yaygın olduğunu düşünüyorum, oysa stackoverflow hakkındaki sorular daha çok profesyoneller tarafından sorulan pratik programlama sorularıyla daha ilgili.
Yazılım mühendisliği sitesinden bazı soruları listeledim.
- Bir programı birden çok sınıfa ayırmak neden iyidir? . Bu soru gerçekten bir lise öğrencisi tarafından soruldu.
- OOP'deki nesnelerin bir varlığı temsil etmesi gerekiyor mu? . Öğrencilerim bana bu soruyu soruyor.
- Prosedürel programlamaya göre nesne yönelimli programlamanın faydası nedir? bu soru bir şekilde sorumdaki "yazılım karmaşıklığını yönetme" sorusuyla ilgili ve meslektaşlarımla quora'da sorulan başka bir ilginç soruyu tartışıyorum C nesne yönelimli bir dil olmadığında Linux bu kadar büyük bir kod tabanını nasıl koruyor? Kod tabanı tamamen dağınık mı?
- OOP, kodun yeniden kullanılması vaadini yerine getiriyor mu? Kodun yeniden kullanılmasını sağlamak için hangi alternatifler var? Öğrencilerin bu soruyu sorup sormayacağından emin değilim ve benim de soruya kendi çiftim var.
- Nesne yönelimli kod yazarken, her zaman bir tasarım modelini takip etmeli miyim? . Bu sitede ayrıca tasarım deseni hakkında bir soru var: Tasarım Desenlerini öğretmeyen bir Bilgisayar Bilimi kursu ne kadar kötü?
- "Söyle, Sorma" nın nasıl iyi OO olarak kabul edildiğine dair açıklama . Ancak bazı kodlama deneyimleri kazandıktan sonra soruyu sorabilir / takdir edebilirler. Ama bu iyi bir tanesidir.
- İşlevim karmaşıksa ve çok sayıda değişkeni varsa bir sınıf oluşturmalı mıyım? Bir cevap da öğrencilerime şu soruları olduğunda tavsiyem oldu: "Bir sınıf kullanın, ancak aynı zamanda sadece nesneyi oluşturan, yöntemi çağıran ve sonucu döndüren bağımsız bir işlev sağlayın, dahili olarak kullandığınız sınıfı gerçekten genel işlevinizin yalnızca bir uygulama ayrıntısı haline gelir "
Quora'da insanların OOP'yi ilk öğrendiklerinde soracaklarını hissettiğim bazı ilginç sorular da var, burada bazılarını listeliyorum:
- Modern teknoloji endüstrisinde (yazılım veya yazılım olmadan) OOP olmadan herkes (bir programcı konumunda) hayatta kalabilir mi?
- Yazılım geliştiriciler OOP'yi ne sıklıkla kullanıyor? . Kurt Guntheroth'un cevabı ilginç "Yaklaşık 1.000 satırdan daha uzun bir program yazdığınızda, OOP kullanmalısınız. 1000 satır? Neden bu ...?"
- Nesne yönelimli programlama ne zaman uygun değildir?
Umarım başka cevaplar alabilirim.
Bu gerçekten güzel bir soru! Cevabınız da pek çok zemini kapsıyor.
Bu soruları neyin motive edebileceğine dair bir fikir sunmak istiyorum.
Tecrübelerime göre, yolculuklarının başlarında OOP ile karşılaşan öğrenciler, aşağıdakiler de dahil olmak üzere birkaç farklı zorlukla mücadele etmek zorundadır:
- OOP'nin çözdüğü sorunları henüz yaşamamışlardır.
- Keşfedilmeyi bekleyen tüm programlama zorluklarına mükemmel bir çözüm olduğuna inanıyorlar.
Bunlar bir sürü soruya, kafa karışıklığına ve bazı durumlarda güvensizliğe yol açar.