2010-03-11 22 views

Trả lời

8

Tôi không biết tôi có thể viết các chức năng của riêng tôi (php)

Khi tôi đang dạy bản thân mình cho chương trình năm trước, tôi đã viết một ứng dụng web toàn bộ php mà không có một chức năng duy nhất. Việc sử dụng lại mã được thực hiện bằng cách gọi bao gồm (...) trên các tập lệnh .php khác. Cuốn sách tôi đã học từ không bao giờ giới thiệu khái niệm về các hàm do người dùng định nghĩa. (Ngày tôi học về các chức năng là một ngày rất tốt.)

+0

tào lao thánh! Bạn có nghiêm túc không: D –

+0

Nhìn thấy một điều tương tự trước khi làm việc, tôi đã tư vấn rất ngắn gọn (được mua bởi các chủ sản phẩm - nhưng phải làm việc với một công ty khác đã phát triển ứng dụng web). Công ty dev này có niềm tin sai lầm rằng việc gọi một hàm quá đắt trong PHP nên mã của họ có xu hướng trông giống như những gì bạn đang nói. Trong khi có một vài cuộc gọi phương thức và bao gồm, một regex để xác nhận địa chỉ email ở một vài nơi không được encaplusate trong một phương pháp - nhưng sao chép dán nó bất cứ nơi nào bạn cần - cuối cùng đã từ bỏ cố gắng thuyết phục họ rằng phương thức gọi trên không không quan trọng – saret

+0

Ứng dụng tôi hiện đang phải duy trì phải là từ bạn. Ok, nó có một wrapper xung quanh các chức năng mysql nhưng thats nó. Tôi đã nhìn thấy một truy vấn SQL duy nhất lặp đi lặp lại 12 lần trong tập tin _one_. – dbemerlin

5

Đa hình.

Không thực sự hiểu được sức mạnh của nó lúc đầu. Kết quả là các thói quen cồng kềnh và phức tạp hơn. Boy, cố gắng không nhớ những ngày đó ...

+2

Tôi có thể thấy những gì bạn có ý nghĩa. Lúc đầu, tôi hầu như nhìn thấy Object Orientation như một cách để giữ các chức năng và dữ liệu với nhau. Giống như cách C++ cho phép bạn khai báo các hàm bên trong một cấu trúc. Tôi đã nhận thức được từ khóa ảo nhưng tôi đã không thực sự thấy tính hữu ích. Việc thực hiện Smalltalk nếu cấu trúc điều khiển với đa hình #ifTrue: và #ifFalse là một công cụ mở mắt thực sự. –

1

Cơ sở dữ liệu tham gia trong mã PHP

Khi giảng dạy bản thân mình SQL với PHP, tôi đã sử dụng SQL giống như một cửa hàng loại phẳng tập tin vĩnh viễn với khả năng lọc phức tạp (Ở ĐÂU). Tôi không hiểu rằng bạn có thể "tham gia" các bảng với nhau. Tất cả các hoạt động nối được thực hiện trong một hàm PHP sau khi tất cả dữ liệu được đưa vào bộ nhớ. Nếu tôi biết nhiều hơn thì tôi có thể đã gọi nó là một hàm lặp lồng nhau! (Điều đó sẽ giúp bạn khử chuẩn hóa dữ liệu của mình rất nhanh!)

Tôi xin lỗi các vị thần cơ sở dữ liệu!

1

Điều tồi tệ nhất tôi từng thực hiện là lưu trữ các id được phân cách bằng dấu phẩy trong cơ sở dữ liệu. Tôi không hiểu đầy đủ về việc tham gia vì vậy đó là điều dễ dàng nhất tôi có thể làm nhưng các truy vấn nơi số tiền khủng khiếp
(WHERE foo_ids LIKE "%, $ id,%" HOẶC foo_ids LIKE "$ id,%" HOẶC foo_ids LIKE "%, $ ID").

Điều tồi tệ nhất tôi thường thấy là các lớp chỉ hoạt động như không gian tên với tất cả các phương thức tĩnh công cộng (PHP).

EDIT:
Tôi chỉ nhớ thời gian khi một người bạn đời học đã cố gắng để tạo ra một tập tin XML cho một bảng cơ sở dữ liệu

Bảng:

teacher_id | name 
     1 | foo 
     2 | bar 
    ...  | ... 

XML của ông:

<teachers> 
    <id1>foo</id1> 
    <id2>bar</id2> 
    .... 
</teachers> 
1

Một số Java - "nhà phát triển" (lol) cố gắng để viết một phần mềm trong C#, không biết rằng đây là một ngôn ngữ hiện đại với một tuyên bố "foreach".

Kết quả:

Software đã lặp đi lặp lại sử dụng ... lặp. Ugly, 90s phong cách, điển hình của Java.

Làm tôi ghét Java hơn nữa. :-(

+2

Nhưng Java có một tuyên bố foreach ('for (e: iterator) {}'), vì vậy các nhà phát triển nói chung là không biết gì. – JAB

+1

Trừ khi có thời gian và địa điểm cho các trình vòng lặp tùy thuộc vào các hoạt động đang được thực hiện trong vòng lặp. Ví dụ lớn là khi bạn cần xóa một thứ gì đó khỏi bộ sưu tập mà bạn đang lặp lại. – Freiheit

+0

@Freiheit Nếu bạn đang làm theo cách này, bạn đang làm sai. IEnumerables được coi là không thay đổi, nếu bạn cần phải thay đổi chúng, bạn có nghĩa vụ phải tạo một bản sao sửa đổi. Mọi thứ khác là tối ưu hóa sớm. –

1

Thu thập thông tin và tôi làm việc với tư cách là nhà tư vấn về dự án phần mềm trung bình. Anh ấy đã làm việc một năm cho các dự án tương tự, vì vậy anh ta đã được lập hóa đơn cho khách hàng là "chuyên gia" trên nền tảng.

Chẳng mấy chốc tôi phát hiện ra rằng quy mô của tôi không hoàn toàn hiểu được điểm tốt của tệp I/O trên ngôn ngữ mà chúng tôi đang sử dụng, do đó để lại rất nhiều lỗi tinh vi. Điều thú vị là, tất cả các dự án trước đây của ông đều có những lỗi tương tự nhưng khách hàng đã học cách sử dụng hệ thống theo những cách không kích hoạt chúng.

1

Quay lại khi tôi là người mới bắt đầu, tôi đã viết một số mã trong PHP mà không cần tìm hiểu con trỏ, đối tượng hoặc thậm chí bộ dữ liệu/cấu trúc. Tôi vừa xây dựng tất cả các cấu trúc dữ liệu của mình bằng cách sử dụng các mảng linh động, linh hoạt của PHP. Nó thực sự khá đáng ngạc nhiên bao nhiêu bạn có thể thực hiện theo cách đó, nhưng tôi cảm thấy xấu cho bất cứ ai (bao gồm cả bản thân mình một vài tháng sau đó) mà bao giờ cần thiết để sửa đổi mã đó.

0

Điều đó tôi phải gọi ToString() trên mọi biến khi nối chuỗi, ngay cả khi các biến là chuỗi.

Ví dụ:

Enum.GetName(...).ToString() 
myDate.ToShortDateString().ToString() 

...

Các vấn đề liên quan